diff options
-rw-r--r-- | lib/param/loadparm.c | 4 | ||||
-rw-r--r-- | lib/param/loadparm.h | 2 | ||||
-rw-r--r-- | lib/param/s3_param.h | 3 | ||||
-rw-r--r-- | source3/param/loadparm.c | 17 |
4 files changed, 15 insertions, 11 deletions
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c index 75ddb221c1..683060c99c 100644 --- a/lib/param/loadparm.c +++ b/lib/param/loadparm.c @@ -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); } } diff --git a/lib/param/loadparm.h b/lib/param/loadparm.h index 79f12cb8ed..cfe1cce763 100644 --- a/lib/param/loadparm.h +++ b/lib/param/loadparm.h @@ -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); diff --git a/lib/param/s3_param.h b/lib/param/s3_param.h index b3dc3f8087..c8e20a88e3 100644 --- a/lib/param/s3_param.h +++ b/lib/param/s3_param.h @@ -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 *); diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 3410735975..8148db67c5 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -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); |