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)) {

Reply via email to