diff options
author | Andrew Bartlett <abartlet@samba.org> | 2014-01-15 13:42:55 +1300 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2014-01-30 00:46:14 +0100 |
commit | 0d506d26fc6a3af1bfd77ad358a9c90ae497f8ab (patch) | |
tree | 7e2db7d753694bd9fa542efeb2ae98902f6815ce /source3/param | |
parent | 36c88ca9c194d49f51894bc00d3a1778d3800690 (diff) | |
download | samba-0d506d26fc6a3af1bfd77ad358a9c90ae497f8ab.tar.gz samba-0d506d26fc6a3af1bfd77ad358a9c90ae497f8ab.tar.xz samba-0d506d26fc6a3af1bfd77ad358a9c90ae497f8ab.zip |
s3-param: Make dump_a_parameter use lp_paramater() rather than an open-coded loop
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
Diffstat (limited to 'source3/param')
-rw-r--r-- | source3/param/loadparm.c | 45 |
1 files changed, 16 insertions, 29 deletions
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 0264b1ddbd4..180f7c836b8 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -3683,13 +3683,12 @@ static void dump_a_service(struct loadparm_service *pService, FILE * f) bool dump_a_parameter(int snum, char *parm_name, FILE * f, bool isGlobal) { - int i; bool result = false; - parm_class p_class; - unsigned flag = 0; + struct parm_struct *p_struct; fstring local_parm_name; char *parm_opt; const char *parm_opt_value; + void *ptr; /* check for parametrical option */ fstrcpy( local_parm_name, parm_name); @@ -3709,36 +3708,24 @@ bool dump_a_parameter(int snum, char *parm_name, FILE * f, bool isGlobal) return result; } - /* check for a key and print the value */ - if (isGlobal) { - p_class = P_GLOBAL; - flag = FLAG_GLOBAL; - } else - p_class = P_LOCAL; - - for (i = 0; parm_table[i].label; i++) { - if (strwicmp(parm_table[i].label, parm_name) == 0 && - (parm_table[i].p_class == p_class || parm_table[i].flags & flag)) - { - void *ptr; + p_struct = lp_get_parameter(parm_name); - if (isGlobal) { - ptr = lp_parm_ptr(NULL, - &parm_table[i]); - } else { - ptr = lp_parm_ptr(ServicePtrs[snum], - &parm_table[i]); - } + if (p_struct == NULL) { + return false; + } - lpcfg_print_parameter(&parm_table[i], - ptr, f); - fprintf(f, "\n"); - result = true; - break; - } + if (isGlobal) { + ptr = lp_parm_ptr(NULL, + p_struct); + } else { + ptr = lp_parm_ptr(ServicePtrs[snum], + p_struct); } - return result; + lpcfg_print_parameter(p_struct, + ptr, f); + fprintf(f, "\n"); + return true; } /*************************************************************************** |