At file:///home/jelmer/bzr.samba/SAMBA_4_0/

------------------------------------------------------------
revno: 12127
revision-id: [EMAIL PROTECTED]
parent: [EMAIL PROTECTED]
committer: Jelmer Vernooij <[EMAIL PROTECTED]>
branch nick: SAMBA_4_0
timestamp: Wed 2007-05-09 14:00:26 +0200
message:
  Use service struct pointers rather than integers where possible.
modified:
  source/param/loadparm.c        svn-v2:[EMAIL PROTECTED]
=== modified file 'source/param/loadparm.c'
--- a/source/param/loadparm.c   2007-05-09 11:28:13 +0000
+++ b/source/param/loadparm.c   2007-05-09 12:00:26 +0000
@@ -1174,7 +1174,7 @@
  service. 
 ***************************************************************************/
 
-static int add_a_service(struct loadparm_context *ctx, 
+static struct service *add_a_service(struct loadparm_context *ctx, 
                                                 const struct service 
*pservice, const char *name)
 {
        int i;
@@ -1197,7 +1197,7 @@
                                data = pdata;
                        }
                        ctx->ServicePtrs[i]->param_opt = NULL;
-                       return i;
+                       return ctx->ServicePtrs[i];
                }
        }
 
@@ -1215,7 +1215,7 @@
                                           
                if (!tsp) {
                        DEBUG(0,("add_a_service: failed to enlarge 
ServicePtrs!\n"));
-                       return (-1);
+                       return NULL;
                }
                else {
                        ctx->ServicePtrs = tsp;
@@ -1223,7 +1223,7 @@
                }
                if (!ctx->ServicePtrs[ctx->iNumServices]) {
                        DEBUG(0,("add_a_service: out of memory!\n"));
-                       return (-1);
+                       return NULL;
                }
 
                ctx->iNumServices++;
@@ -1236,7 +1236,7 @@
        copy_service(ctx->ServicePtrs[i], &tservice, NULL);
        if (name)
                string_set(ctx, &ctx->ServicePtrs[i]->szService, name);
-       return i;
+       return ctx->ServicePtrs[i];
 }
 
 /***************************************************************************
@@ -1248,13 +1248,12 @@
                                 const char *pszHomename, int iDefaultService, 
                                 const char *user, const char *pszHomedir)
 {
-       int i;
        pstring newHomedir;
 
-       i = add_a_service(ctx, ctx->ServicePtrs[iDefaultService], pszHomename);
+       struct service *svc = add_a_service(ctx, 
ctx->ServicePtrs[iDefaultService], pszHomename);
 
-       if (i < 0)
-               return (False);
+       if (svc == NULL)
+               return false;
 
        if (!(*(ctx->ServicePtrs[iDefaultService]->szPath))
            || strequal(ctx->ServicePtrs[iDefaultService]->szPath, 
lp_pathname(-1))) {
@@ -1264,16 +1263,16 @@
                string_sub(newHomedir,"%H", pszHomedir, sizeof(newHomedir)); 
        }
 
-       string_set(ctx, &ctx->ServicePtrs[i]->szPath, newHomedir);
+       string_set(svc, &svc->szPath, newHomedir);
 
-       if (!(*(ctx->ServicePtrs[i]->comment))) {
+       if (!(*(svc->comment))) {
                pstring comment;
                slprintf(comment, sizeof(comment) - 1,
                         "Home directory of %s", user);
-               string_set(ctx, &ctx->ServicePtrs[i]->comment, comment);
+               string_set(ctx, &svc->comment, comment);
        }
-       ctx->ServicePtrs[i]->bAvailable = sDefault.bAvailable;
-       ctx->ServicePtrs[i]->bBrowseable = sDefault.bBrowseable;
+       svc->bAvailable = sDefault.bAvailable;
+       svc->bBrowseable = sDefault.bBrowseable;
 
        DEBUG(3, ("adding home's share [%s] for user '%s' at '%s'\n", 
pszHomename, 
               user, newHomedir));
@@ -1285,7 +1284,7 @@
  Add a new service, based on an old one.
 ***************************************************************************/
 
-int lp_add_service(struct loadparm_context *ctx, 
+struct service *lp_add_service(struct loadparm_context *ctx, 
                                   const char *pszService, int iDefaultService)
 {
        return (add_a_service(ctx, ctx->ServicePtrs[iDefaultService], 
pszService));
@@ -1299,25 +1298,25 @@
                                                  const char *name, const char 
*fstype)
 {
        pstring comment;
-       int i = add_a_service(ctx, &sDefault, name);
+       struct service *svc = add_a_service(ctx, &sDefault, name);
 
-       if (i < 0)
-               return (False);
+       if (svc == NULL)
+               return false;
 
        slprintf(comment, sizeof(comment) - 1,
                 "%s Service (%s)", fstype, Globals.szServerString);
 
-       string_set(ctx, &ctx->ServicePtrs[i]->szPath, tmpdir());
-       string_set(ctx, &ctx->ServicePtrs[i]->comment, comment);
-       string_set(ctx, &ctx->ServicePtrs[i]->fstype, fstype);
-       ctx->ServicePtrs[i]->iMaxConnections = -1;
-       ctx->ServicePtrs[i]->bAvailable = true;
-       ctx->ServicePtrs[i]->bRead_only = true;
-       ctx->ServicePtrs[i]->bPrint_ok = false;
-       ctx->ServicePtrs[i]->bBrowseable = false;
+       string_set(ctx, &svc->szPath, tmpdir());
+       string_set(ctx, &svc->comment, comment);
+       string_set(ctx, &svc->fstype, fstype);
+       svc->iMaxConnections = -1;
+       svc->bAvailable = true;
+       svc->bRead_only = true;
+       svc->bPrint_ok = false;
+       svc->bBrowseable = false;
 
        if (strcasecmp(fstype, "IPC") == 0) {
-               lp_do_parameter(ctx, i, "ntvfs handler", "default");
+               string_set(ctx, &svc->ntvfs_handler, "default");
        }
 
        DEBUG(3, ("adding hidden service %s\n", name));
@@ -1333,9 +1332,9 @@
                                        const char *pszPrintername, int 
iDefaultService)
 {
        const char *comment = "From Printcap";
-       int i = add_a_service(ctx, ctx->ServicePtrs[iDefaultService], 
pszPrintername);
+       struct service *svc = add_a_service(ctx, 
ctx->ServicePtrs[iDefaultService], pszPrintername);
 
-       if (i < 0)
+       if (svc == NULL)
                return false;
 
        /* note that we do NOT default the availability flag to true - */
@@ -1344,13 +1343,13 @@
        /* entry (if/when the 'available' keyword is implemented!).    */
 
        /* the printer name is set to the service name. */
-       string_set(ctx, &ctx->ServicePtrs[i]->szPrintername, pszPrintername);
-       string_set(ctx, &ctx->ServicePtrs[i]->comment, comment);
-       ctx->ServicePtrs[i]->bBrowseable = sDefault.bBrowseable;
+       string_set(ctx, &svc->szPrintername, pszPrintername);
+       string_set(ctx, &svc->comment, comment);
+       svc->bBrowseable = sDefault.bBrowseable;
        /* Printers cannot be read_only. */
-       ctx->ServicePtrs[i]->bRead_only = false;
+       svc->bRead_only = false;
        /* Printer services must be printable. */
-       ctx->ServicePtrs[i]->bPrint_ok = true;
+       svc->bPrint_ok = true;
 
        DEBUG(3, ("adding printer service %s\n", pszPrintername));
 
@@ -2145,8 +2144,7 @@
                /* issued by the post-processing of a previous section. */
                DEBUG(2, ("Processing section \"[%s]\"\n", pszSectionName));
 
-               if ((iServiceIndex = add_a_service(ctx, &sDefault, 
pszSectionName))
-                   < 0) {
+               if (add_a_service(ctx, &sDefault, pszSectionName) == NULL) {
                        DEBUG(0, ("Failed to add a new service\n"));
                        return false;
                }

Reply via email to