summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2014-02-21 17:16:15 +1300
committerJeremy Allison <jra@samba.org>2014-05-07 19:49:16 +0200
commit509cc45c95fa1b5d4d89afc687d09748dddec404 (patch)
tree25c6030c9e1f01806950a2133505661b4096e89e
parentd7973e1c38e509cc4e6b01bf16a898203990aa39 (diff)
downloadsamba-509cc45c95fa1b5d4d89afc687d09748dddec404.tar.gz
samba-509cc45c95fa1b5d4d89afc687d09748dddec404.tar.xz
samba-509cc45c95fa1b5d4d89afc687d09748dddec404.zip
param: add extra default parameter to get_parametrics_by_service
Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
-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;
}