summaryrefslogtreecommitdiffstats
path: root/lib/param/loadparm.c
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2014-02-18 12:25:35 +1300
committerJeremy Allison <jra@samba.org>2014-05-07 19:49:15 +0200
commitc34a063a6d6b6c57c108cf0f0490a318ec6e1bd3 (patch)
tree9c7a920f95f05311e3364ea2045c9cd7bf477043 /lib/param/loadparm.c
parentbe0851f7542c5d07077285567b6f6691af172b1b (diff)
downloadsamba-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.c31
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);
}
}