summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/param/loadparm.c2
-rw-r--r--lib/param/s3_param.h3
-rw-r--r--source3/include/proto.h3
-rw-r--r--source3/param/loadparm.c6
4 files changed, 9 insertions, 5 deletions
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index b1e160d70b..63b8edd201 100644
--- a/lib/param/loadparm.c
+++ b/lib/param/loadparm.c
@@ -288,7 +288,7 @@ const char *lpcfg_get_parametric(struct loadparm_context *lp_ctx,
return NULL;
if (lp_ctx->s3_fns) {
- return lp_ctx->s3_fns->get_parametric(service, type, option);
+ return lp_ctx->s3_fns->get_parametric(service, type, option, NULL);
}
data = (service == NULL ? lp_ctx->globals->param_opt : service->param_opt);
diff --git a/lib/param/s3_param.h b/lib/param/s3_param.h
index 27ad192f74..e1d68cf04f 100644
--- a/lib/param/s3_param.h
+++ b/lib/param/s3_param.h
@@ -3,7 +3,8 @@
struct loadparm_s3_helpers
{
- const char * (*get_parametric)(struct loadparm_service *, const char *type, const char *option);
+ const char * (*get_parametric)(struct loadparm_service *, const char *type,
+ const char *option, const char *def);
struct parm_struct * (*get_parm_struct)(const char *param_name);
void * (*get_parm_ptr)(struct loadparm_service *service, struct parm_struct *parm);
struct loadparm_service * (*get_service)(const char *service_name);
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 9f96364ff4..9cdd0df2c0 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1008,7 +1008,8 @@ bool lp_widelinks(int );
char *lp_parm_talloc_string(TALLOC_CTX *ctx, int snum, const char *type, const char *option, const char *def);
const char *lp_parm_const_string(int snum, const char *type, const char *option, const char *def);
struct loadparm_service;
-const char *lp_parm_const_string_service(struct loadparm_service *service, const char *type, const char *option);
+const char *lp_parm_const_string_service(struct loadparm_service *service, const char *type,
+ const char *option, const char *def);
const char **lp_parm_string_list(int snum, const char *type, const char *option, const char **def);
int lp_parm_int(int snum, const char *type, const char *option, int def);
unsigned long lp_parm_ulong(int snum, const char *type, const char *option, unsigned long def);
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 2e7a508191..6e375aed3f 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -1304,12 +1304,14 @@ const char *lp_parm_const_string(int snum, const char *type, const char *option,
return data->value;
}
-const char *lp_parm_const_string_service(struct loadparm_service *service, const char *type, const char *option)
+const char *lp_parm_const_string_service(struct loadparm_service *service,
+ const char *type, const char *option,
+ const char *def)
{
struct parmlist_entry *data = get_parametrics_by_service(service, type, option);
if (data == NULL||data->value==NULL)
- return NULL;
+ return def;
return data->value;
}