summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>1999-04-04 04:54:50 +0000
committerTim Potter <tpot@samba.org>1999-04-04 04:54:50 +0000
commit0309a98851e7f2537f677d87d573bcfa383de83a (patch)
tree2ef4702152bc48be9643fc70cfd39fe4d669729e /source3
parent4c4d72ee172a40a757e4a720f740e9ae9b7d9d91 (diff)
downloadsamba-0309a98851e7f2537f677d87d573bcfa383de83a.tar.gz
samba-0309a98851e7f2537f677d87d573bcfa383de83a.tar.bz2
samba-0309a98851e7f2537f677d87d573bcfa383de83a.zip
Added configuration parameter 'vfs object' to specify loadable object
file containing a VFS implementation. (This used to be commit a7af7193e3c38d1303919b31a73eea77d0dfa92f)
Diffstat (limited to 'source3')
-rw-r--r--source3/param/loadparm.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index ccb314b2f1..2446520afb 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -289,6 +289,7 @@ typedef struct
char *writelist;
char *volume;
char *fstype;
+ char *vfsObjectFile;
int iMinPrintSpace;
int iCreate_mask;
int iCreate_force_mode;
@@ -382,6 +383,7 @@ static service sDefault =
NULL, /* writelist */
NULL, /* volume */
NULL, /* fstype */
+ NULL, /* vfs object */
0, /* iMinPrintSpace */
0744, /* iCreate_mask */
0000, /* iCreate_force_mode */
@@ -449,6 +451,7 @@ static BOOL handle_include(char *pszParmValue, char **ptr);
static BOOL handle_copy(char *pszParmValue, char **ptr);
static BOOL handle_character_set(char *pszParmValue,char **ptr);
static BOOL handle_coding_system(char *pszParmValue,char **ptr);
+static BOOL handle_vfs_object(char *pszParmValue, char **ptr);
static void set_default_server_announce_type(void);
@@ -794,6 +797,7 @@ static struct parm_struct parm_table[] =
{"available", P_BOOL, P_LOCAL, &sDefault.bAvailable, NULL, NULL, 0},
{"volume", P_STRING, P_LOCAL, &sDefault.volume, NULL, NULL, 0},
{"fstype", P_STRING, P_LOCAL, &sDefault.fstype, NULL, NULL, 0},
+ {"vfs object", P_STRING, P_LOCAL, &sDefault.vfsObjectFile, handle_vfs_object, NULL, 0},
{"set directory", P_BOOLREV, P_LOCAL, &sDefault.bNo_set_dir, NULL, NULL, 0},
{"wide links", P_BOOL, P_LOCAL, &sDefault.bWidelinks, NULL, NULL, FLAG_GLOBAL},
{"follow symlinks", P_BOOL, P_LOCAL, &sDefault.bSymlinks, NULL, NULL, FLAG_GLOBAL},
@@ -1299,6 +1303,7 @@ FN_LOCAL_STRING(lp_force_group,force_group)
FN_LOCAL_STRING(lp_readlist,readlist)
FN_LOCAL_STRING(lp_writelist,writelist)
FN_LOCAL_STRING(lp_fstype,fstype)
+FN_LOCAL_STRING(lp_vfsobj,vfsObjectFile)
static FN_LOCAL_STRING(lp_volume,volume)
FN_LOCAL_STRING(lp_mangled_map,szMangledMap)
FN_LOCAL_STRING(lp_veto_files,szVetoFiles)
@@ -1840,6 +1845,21 @@ BOOL lp_file_list_changed(void)
}
/***************************************************************************
+ handle the interpretation of the vfs object parameter
+ *************************************************************************/
+static BOOL handle_vfs_object(char *pszParmValue,char **ptr)
+{
+ /* Set string value */
+
+ string_set(ptr,pszParmValue);
+
+ /* Do any other initialisation required for vfs. Note that
+ anything done here may have linking repercussions in nmbd. */
+
+ return True;
+}
+
+/***************************************************************************
handle the interpretation of the coding system parameter
*************************************************************************/
static BOOL handle_coding_system(char *pszParmValue,char **ptr)