mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
lib/param: clean up lpcfg_get_parametric
Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
b93ed0a73b
commit
687b35931d
@ -251,26 +251,17 @@ const char *lpcfg_get_parametric(struct loadparm_context *lp_ctx,
|
||||
return lp_ctx->s3_fns->get_parametric(service, type, option, NULL);
|
||||
}
|
||||
|
||||
data = (service == NULL ? lp_ctx->globals->param_opt : service->param_opt);
|
||||
|
||||
vfskey = talloc_asprintf(NULL, "%s:%s", type, option);
|
||||
if (vfskey == NULL) {
|
||||
DEBUG(0,("asprintf failed!\n"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
while (data) {
|
||||
if (strwicmp(data->key, vfskey) == 0) {
|
||||
talloc_free(vfskey);
|
||||
return data->value;
|
||||
}
|
||||
data = data->next;
|
||||
}
|
||||
|
||||
/*
|
||||
* Try to fetch the option from the service.
|
||||
*/
|
||||
if (service != NULL) {
|
||||
/* Try to fetch the same option but from globals */
|
||||
/* but only if we are not already working with globals */
|
||||
for (data = lp_ctx->globals->param_opt; data;
|
||||
for (data = service->param_opt; data;
|
||||
data = data->next) {
|
||||
if (strwicmp(data->key, vfskey) == 0) {
|
||||
talloc_free(vfskey);
|
||||
@ -279,6 +270,18 @@ const char *lpcfg_get_parametric(struct loadparm_context *lp_ctx,
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Fall back to fetching from the globals.
|
||||
*/
|
||||
data = lp_ctx->globals->param_opt;
|
||||
while (data) {
|
||||
if (strwicmp(data->key, vfskey) == 0) {
|
||||
talloc_free(vfskey);
|
||||
return data->value;
|
||||
}
|
||||
data = data->next;
|
||||
}
|
||||
|
||||
talloc_free(vfskey);
|
||||
|
||||
return NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user