Hi! This patch adds lp_modules() and loads all modules in lp_load() - any comments on it ?
I'm not too sure about the place smb_load_modules(lp_modules()) is called - do we really want to load all those modules when loading a configuration file ? Comments, please! :-) Jelmer -- Jelmer Vernooij <[EMAIL PROTECTED]> Pending (unfinished) patches http://samba.org/~jelmer/diffs.php
Index: param/loadparm.c
===================================================================
RCS file: /home/cvs/samba/source/param/loadparm.c,v
retrieving revision 1.465
diff -u -3 -p -r1.465 loadparm.c
--- param/loadparm.c 2 Nov 2002 07:09:17 -0000 1.465
+++ param/loadparm.c 2 Nov 2002 17:41:26 -0000
@@ -113,6 +113,7 @@ typedef struct
char *szPrivateDir;
char **szPassdbBackend;
char **szSamBackend;
+ char **szModules;
char *szPasswordServer;
char *szSocketOptions;
char *szWorkGroup;
@@ -797,6 +798,7 @@ static struct parm_struct parm_table[] =
{"allow hosts", P_LIST, P_LOCAL, &sDefault.szHostsallow, NULL, NULL,
FLAG_HIDE},
{"hosts deny", P_LIST, P_LOCAL, &sDefault.szHostsdeny, NULL, NULL, FLAG_GLOBAL
| FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT | FLAG_DEVELOPER},
{"deny hosts", P_LIST, P_LOCAL, &sDefault.szHostsdeny, NULL, NULL, FLAG_HIDE},
+ {"modules", P_LIST, P_GLOBAL, &Globals.szModules, NULL, NULL, FLAG_BASIC |
+FLAG_GLOBAL},
{"Logging Options", P_SEP, P_SEPARATOR},
@@ -1495,6 +1497,8 @@ static char *lp_string(const char *s)
const char *fn_name(void) {return(*(const char **)(ptr) ? *(const char **)(ptr) :
"");}
#define FN_GLOBAL_LIST(fn_name,ptr) \
char **fn_name(void) {return(*(char ***)(ptr));}
+#define FN_GLOBAL_CONST_LIST(fn_name,ptr) \
+ const char **fn_name(void) {return(*(const char ***)(ptr));}
#define FN_GLOBAL_BOOL(fn_name,ptr) \
BOOL fn_name(void) {return(*(BOOL *)(ptr));}
#define FN_GLOBAL_CHAR(fn_name,ptr) \
@@ -1567,6 +1571,7 @@ static FN_GLOBAL_STRING(lp_announce_vers
FN_GLOBAL_LIST(lp_netbios_aliases, &Globals.szNetbiosAliases)
FN_GLOBAL_LIST(lp_passdb_backend, &Globals.szPassdbBackend)
FN_GLOBAL_LIST(lp_sam_backend, &Globals.szSamBackend)
+FN_GLOBAL_CONST_LIST(lp_modules, &Globals.szModules)
FN_GLOBAL_STRING(lp_panic_action, &Globals.szPanicAction)
FN_GLOBAL_STRING(lp_adduser_script, &Globals.szAddUserScript)
FN_GLOBAL_STRING(lp_deluser_script, &Globals.szDelUserScript)
@@ -3682,6 +3687,10 @@ BOOL lp_load(const char *pszFname, BOOL
}
init_iconv();
+
+ if(lp_modules()) {
+ smb_load_modules(lp_modules());
+ }
return (bRetval);
}
Index: utils/testparm.c
===================================================================
RCS file: /home/cvs/samba/source/utils/testparm.c,v
retrieving revision 1.53
diff -u -3 -p -r1.53 testparm.c
--- utils/testparm.c 30 Sep 2002 15:18:59 -0000 1.53
+++ utils/testparm.c 2 Nov 2002 17:41:26 -0000
@@ -168,6 +168,12 @@ via the %%o substitution. With encrypted
printf("'winbind separator = +' might cause problems with group
membership.\n");
}
+#ifndef HAVE_DLOPEN
+ if (lp_modules() != NULL) {
+ printf("'modules = ' specified in configuration file, but this samba
+build does not support plugins!\n");
+ }
+#endif
+
return ret;
}
msg04227/pgp00000.pgp
Description: PGP signature
