summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/param/loadparm.c4
-rw-r--r--lib/param/loadparm.h2
-rw-r--r--lib/param/s3_param.h3
-rw-r--r--source3/param/loadparm.c17
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);