Author: jelmer Date: 2007-09-27 19:49:53 +0000 (Thu, 27 Sep 2007) New Revision: 25379
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25379 Log: Use loadparm context parameter in a lot more places. Modified: branches/SAMBA_4_0/ branches/SAMBA_4_0/source/param/loadparm.c branches/SAMBA_4_0/source/param/loadparm.h branches/SAMBA_4_0/source/param/param.h branches/SAMBA_4_0/source/param/share_classic.c branches/SAMBA_4_0/source/scripting/ejs/smbcalls_config.c branches/SAMBA_4_0/source/utils/testparm.c Changeset: Property changes on: branches/SAMBA_4_0 ___________________________________________________________________ Name: bzr:revision-info ...skipped... Name: bzr:revision-id:v3-trunk0 ...skipped... Modified: branches/SAMBA_4_0/source/param/loadparm.c =================================================================== --- branches/SAMBA_4_0/source/param/loadparm.c 2007-09-27 19:20:37 UTC (rev 25378) +++ branches/SAMBA_4_0/source/param/loadparm.c 2007-09-27 19:49:53 UTC (rev 25379) @@ -66,6 +66,8 @@ static bool bLoaded = false; +struct loadparm_context *global_loadparm = NULL; + #define standard_sub_basic talloc_strdup static bool do_parameter(const char *, const char *, void *); @@ -2293,6 +2295,8 @@ int i; char *myname; + lp_ctx->bInGlobalSection = true; + DEBUG(3, ("Initialising global parameters\n")); for (i = 0; parm_table[i].label; i++) { @@ -2458,6 +2462,8 @@ struct param_opt *data; struct loadparm_context *lp_ctx = &loadparm; + global_loadparm = lp_ctx; + bRetval = false; if (lp_ctx->Globals.param_opt != NULL) { @@ -2509,22 +2515,20 @@ Return the max number of services. ***************************************************************************/ -int lp_numservices(void) +int lp_numservices(struct loadparm_context *lp_ctx) { - return loadparm.iNumServices; + return lp_ctx->iNumServices; } /*************************************************************************** Display the contents of the services array in human-readable form. ***************************************************************************/ -void lp_dump(FILE *f, bool show_defaults, int maxtoprint) +void lp_dump(struct loadparm_context *lp_ctx, FILE *f, bool show_defaults, + int maxtoprint) { - struct loadparm_context *lp_ctx; int iService; - lp_ctx = &loadparm; - if (show_defaults) defaults_saved = false; @@ -2549,28 +2553,30 @@ } } -struct loadparm_service *lp_servicebynum(int snum) +struct loadparm_service *lp_servicebynum(struct loadparm_context *lp_ctx, + int snum) { - return loadparm.ServicePtrs[snum]; + return lp_ctx->ServicePtrs[snum]; } -struct loadparm_service *lp_service(const char *service_name) +struct loadparm_service *lp_service(struct loadparm_context *lp_ctx, + const char *service_name) { int iService; char *serviceName; - for (iService = loadparm.iNumServices - 1; iService >= 0; iService--) { - if (loadparm.ServicePtrs[iService] && - loadparm.ServicePtrs[iService]->szService) { + for (iService = lp_ctx->iNumServices - 1; iService >= 0; iService--) { + if (lp_ctx->ServicePtrs[iService] && + lp_ctx->ServicePtrs[iService]->szService) { /* * The substitution here is used to support %U is * service names */ serviceName = standard_sub_basic( - loadparm.ServicePtrs[iService], - loadparm.ServicePtrs[iService]->szService); + lp_ctx->ServicePtrs[iService], + lp_ctx->ServicePtrs[iService]->szService); if (strequal(serviceName, service_name)) - return loadparm.ServicePtrs[iService]; + return lp_ctx->ServicePtrs[iService]; } } Modified: branches/SAMBA_4_0/source/param/loadparm.h =================================================================== --- branches/SAMBA_4_0/source/param/loadparm.h 2007-09-27 19:20:37 UTC (rev 25378) +++ branches/SAMBA_4_0/source/param/loadparm.h 2007-09-27 19:49:53 UTC (rev 25379) @@ -80,4 +80,3 @@ #define HOMES_NAME "homes" #endif - Modified: branches/SAMBA_4_0/source/param/param.h =================================================================== --- branches/SAMBA_4_0/source/param/param.h 2007-09-27 19:20:37 UTC (rev 25378) +++ branches/SAMBA_4_0/source/param/param.h 2007-09-27 19:49:53 UTC (rev 25379) @@ -62,4 +62,6 @@ #include "param/proto.h" +extern struct loadparm_context *global_loadparm; + #endif /* _PARAM_H */ Modified: branches/SAMBA_4_0/source/param/share_classic.c =================================================================== --- branches/SAMBA_4_0/source/param/share_classic.c 2007-09-27 19:20:37 UTC (rev 25378) +++ branches/SAMBA_4_0/source/param/share_classic.c 2007-09-27 19:49:53 UTC (rev 25379) @@ -268,7 +268,7 @@ int num_services; const char **n; - num_services = lp_numservices(); + num_services = lp_numservices(global_loadparm); n = talloc_array(mem_ctx, const char *, num_services); if (!n) { @@ -277,7 +277,7 @@ } for (i = 0; i < num_services; i++) { - n[i] = talloc_strdup(n, lp_servicename(lp_servicebynum(i))); + n[i] = talloc_strdup(n, lp_servicename(lp_servicebynum(global_loadparm, i))); if (!n[i]) { DEBUG(0,("ERROR: Out of memory!\n")); talloc_free(n); @@ -299,7 +299,7 @@ struct share_config *s; struct loadparm_service *service; - service = lp_service(name); + service = lp_service(global_loadparm, name); if (service == NULL) { return NT_STATUS_OBJECT_NAME_NOT_FOUND; Modified: branches/SAMBA_4_0/source/scripting/ejs/smbcalls_config.c =================================================================== --- branches/SAMBA_4_0/source/scripting/ejs/smbcalls_config.c 2007-09-27 19:20:37 UTC (rev 25378) +++ branches/SAMBA_4_0/source/scripting/ejs/smbcalls_config.c 2007-09-27 19:49:53 UTC (rev 25379) @@ -36,8 +36,8 @@ const char **list = NULL; if (argc != 0) return -1; - for (i=0;i<lp_numservices();i++) { - list = str_list_add(list, lp_servicename(lp_servicebynum(i))); + for (i=0;i<lp_numservices(global_loadparm);i++) { + list = str_list_add(list, lp_servicename(lp_servicebynum(global_loadparm, i))); } talloc_steal(mprMemCtx(), list); mpr_Return(eid, mprList("services", list)); @@ -89,7 +89,7 @@ if (argc == 2) { struct loadparm_service *service; /* its a share parameter */ - service = lp_service(argv[0]); + service = lp_service(global_loadparm, argv[0]); if (service == NULL) { mpr_Return(eid, mprCreateUndefinedVar()); return 0; Modified: branches/SAMBA_4_0/source/utils/testparm.c =================================================================== --- branches/SAMBA_4_0/source/utils/testparm.c 2007-09-27 19:20:37 UTC (rev 25378) +++ branches/SAMBA_4_0/source/utils/testparm.c 2007-09-27 19:49:53 UTC (rev 25379) @@ -150,10 +150,10 @@ ret = do_global_checks(); - for (s=0;s<lp_numservices();s++) { - struct loadparm_service *service = lp_servicebynum(s); + for (s=0;s<lp_numservices(global_loadparm);s++) { + struct loadparm_service *service = lp_servicebynum(global_loadparm, s); if (service != NULL) - if (strlen(lp_servicename(lp_servicebynum(s))) > 12) { + if (strlen(lp_servicename(lp_servicebynum(global_loadparm, s))) > 12) { fprintf(stderr, "WARNING: You have some share names that are longer than 12 characters.\n" ); fprintf(stderr, "These may not be accessible to some older clients.\n" ); fprintf(stderr, "(Eg. Windows9x, WindowsMe, and not listed in smbclient in Samba 3.0.)\n" ); @@ -161,8 +161,8 @@ } } - for (s=0;s<lp_numservices();s++) { - struct loadparm_service *service = lp_servicebynum(s); + for (s=0;s<lp_numservices(global_loadparm);s++) { + struct loadparm_service *service = lp_servicebynum(global_loadparm, s); if (service != NULL) { const char **deny_list = lp_hostsdeny(service); const char **allow_list = lp_hostsallow(service); @@ -204,7 +204,7 @@ section_name = GLOBAL_NAME; service = NULL; } else if ((!strwicmp(section_name, GLOBAL_NAME)) == 0 && - (service=lp_service(section_name)) == NULL) { + (service=lp_service(global_loadparm, section_name)) == NULL) { fprintf(stderr,"Unknown section %s\n", section_name); return(1); @@ -215,15 +215,15 @@ ret = !lp_dump_a_parameter(s, parameter_name, stdout, (service == NULL)); } } else { - lp_dump(stdout, show_defaults, lp_numservices()); + lp_dump(global_loadparm, stdout, show_defaults, lp_numservices(global_loadparm)); } return(ret); } if(cname && caddr){ /* this is totally ugly, a real `quick' hack */ - for (s=0;s<lp_numservices();s++) { - struct loadparm_service *service = lp_servicebynum(s); + for (s=0;s<lp_numservices(global_loadparm);s++) { + struct loadparm_service *service = lp_servicebynum(global_loadparm, s); if (service != NULL) { if (allow_access(NULL, lp_hostsdeny(NULL), lp_hostsallow(NULL), cname, caddr) && allow_access(NULL, lp_hostsdeny(service), lp_hostsallow(service), cname, caddr)) {
