diff options
author | Garming Sam <garming@catalyst.net.nz> | 2014-02-18 12:25:35 +1300 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2014-05-07 19:49:15 +0200 |
commit | c34a063a6d6b6c57c108cf0f0490a318ec6e1bd3 (patch) | |
tree | 9c7a920f95f05311e3364ea2045c9cd7bf477043 /lib/param/loadparm.c | |
parent | be0851f7542c5d07077285567b6f6691af172b1b (diff) | |
download | samba-c34a063a6d6b6c57c108cf0f0490a318ec6e1bd3.tar.gz samba-c34a063a6d6b6c57c108cf0f0490a318ec6e1bd3.tar.xz samba-c34a063a6d6b6c57c108cf0f0490a318ec6e1bd3.zip |
param: make lib/param copy_service use set_param_opt
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'lib/param/loadparm.c')
-rw-r--r-- | lib/param/loadparm.c | 31 |
1 files changed, 4 insertions, 27 deletions
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c index 63be8c4bc0d..8a6e300a8ac 100644 --- a/lib/param/loadparm.c +++ b/lib/param/loadparm.c @@ -923,8 +923,7 @@ static void copy_service(struct loadparm_service *pserviceDest, { int i; bool bcopyall = (pcopymapDest == NULL); - struct parmlist_entry *data, *pdata, *paramo; - bool not_added; + struct parmlist_entry *data; for (i = 0; parm_table[i].label; i++) if (parm_table[i].p_class == P_LOCAL && @@ -978,31 +977,9 @@ static void copy_service(struct loadparm_service *pserviceDest, pserviceSource->copymap); } - data = pserviceSource->param_opt; - while (data) { - not_added = true; - pdata = pserviceDest->param_opt; - /* Traverse destination */ - while (pdata) { - /* If we already have same option, override it */ - if (strcmp(pdata->key, data->key) == 0) { - talloc_free(pdata->value); - pdata->value = talloc_strdup(pdata, - data->value); - not_added = false; - break; - } - pdata = pdata->next; - } - if (not_added) { - paramo = talloc_zero(pserviceDest, struct parmlist_entry); - if (paramo == NULL) - smb_panic("OOM"); - paramo->key = talloc_strdup(paramo, data->key); - paramo->value = talloc_strdup(paramo, data->value); - DLIST_ADD(pserviceDest->param_opt, paramo); - } - data = data->next; + for (data = pserviceSource->param_opt; data != NULL; data = data->next) { + set_param_opt(pserviceDest, &pserviceDest->param_opt, + data->key, data->value, data->priority); } } |