param: change init_printer_values to take an lp ctx
authorGarming Sam <garming@catalyst.net.nz>
Thu, 27 Mar 2014 02:03:37 +0000 (15:03 +1300)
committerMichael Adam <obnox@samba.org>
Thu, 31 Jul 2014 06:17:11 +0000 (08:17 +0200)
Change-Id: I55cda94bbf1daf276ec0c45b056bd81645eaa25f
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
lib/param/loadparm.c
lib/param/loadparm.h
lib/param/s3_param.h
source3/param/loadparm.c

index 75ddb221c1d93f5c93bd3f744e66c8c48adf276b..683060c99c267eed0e35890a5d5ab90c784a08a5 100644 (file)
@@ -1267,10 +1267,10 @@ bool handle_printing(struct loadparm_context *lp_ctx, struct loadparm_service *s
        if (lp_ctx->s3_fns) {
                if (service == NULL) {
                        s = lp_ctx->sDefault;
-                       lp_ctx->s3_fns->init_printer_values(lp_ctx->globals->ctx, s);
+                       lp_ctx->s3_fns->init_printer_values(lp_ctx, lp_ctx->globals->ctx, s);
                } else {
                        s = service;
-                       lp_ctx->s3_fns->init_printer_values(s, s);
+                       lp_ctx->s3_fns->init_printer_values(lp_ctx, s, s);
                }
        }
 
index 79f12cb8edd741e8d2010fcb649d092c880d972e..cfe1cce763800615c81daecd9614ded635505642 100644 (file)
@@ -284,7 +284,7 @@ bool lp_string_set(char **, const char *);
 int getservicebyname(const char *, struct loadparm_service *);
 bool lp_include(struct loadparm_context *, struct loadparm_service *,
                const char *, char **);
-void init_printer_values(TALLOC_CTX *, struct loadparm_service *);
+void init_printer_values(struct loadparm_context *, TALLOC_CTX *, struct loadparm_service *);
 bool lp_do_section(const char *pszSectionName, void *userdata);
 bool store_lp_set_cmdline(const char *pszParmName, const char *pszParmValue);
 
index b3dc3f8087dbc5dd3d9de08870f2a025c975ee20..c8e20a88e3599e164b8351374abce59c986ab3fb 100644 (file)
@@ -16,7 +16,8 @@ struct loadparm_s3_helpers
        char * (*lp_string)(TALLOC_CTX *ctx, const char *in);
        bool (*lp_include)(struct loadparm_context*, struct loadparm_service *,
                        const char *, char **);
-       void (*init_printer_values)(TALLOC_CTX *, struct loadparm_service *);
+       void (*init_printer_values)(struct loadparm_context *, TALLOC_CTX *,
+                                   struct loadparm_service *);
        void (*init_ldap_debugging)(void);
        bool (*set_netbios_aliases)(const char **);
        bool (*lp_do_parameter)(int, const char *, const char *);
index 341073597511fc827ccefec48077845f218483fa..8148db67c59f48d86dd66d9743694b8647ce4bfb 100644 (file)
@@ -310,7 +310,8 @@ bool lp_string_set(char **dest, const char *src) {
  Initialise the sDefault parameter structure for the printer values.
 ***************************************************************************/
 
-void init_printer_values(TALLOC_CTX *ctx, struct loadparm_service *pService)
+void init_printer_values(struct loadparm_context *lp_ctx, TALLOC_CTX *ctx,
+                        struct loadparm_service *pService)
 {
        /* choose defaults depending on the type of printing */
        switch (pService->printing) {
@@ -372,12 +373,14 @@ void init_printer_values(TALLOC_CTX *ctx, struct loadparm_service *pService)
        case PRINT_VLP: {
                const char *tdbfile;
                TALLOC_CTX *tmp_ctx = talloc_new(ctx);
-               char *tmp;
+               const char *tmp;
 
-               tdbfile = talloc_asprintf(
-                       tmp_ctx, "tdbfile=%s",
-                       lp_parm_const_string(-1, "vlp", "tdbfile",
-                                            "/tmp/vlp.tdb"));
+               tmp = lpcfg_parm_string(lp_ctx, NULL, "vlp", "tdbfile");
+               if (tmp == NULL) {
+                       tmp = "/tmp/vlp.tdb";
+               }
+
+               tdbfile = talloc_asprintf(tmp_ctx, "tdbfile=%s", tmp);
                if (tdbfile == NULL) {
                        tdbfile="tdbfile=/tmp/vlp.tdb";
                }
@@ -678,7 +681,7 @@ static void init_globals(struct loadparm_context *lp_ctx, bool reinit_globals)
        string_set(Globals.ctx, &sDefault.fstype, FSTYPE_STRING);
        string_set(Globals.ctx, &sDefault.printjob_username, "%U");
 
-       init_printer_values(Globals.ctx, &sDefault);
+       init_printer_values(lp_ctx, Globals.ctx, &sDefault);
 
        sDefault.ntvfs_handler = (const char **)str_list_make_v3(NULL, "unixuid default", NULL);