summaryrefslogtreecommitdiffstats
path: root/source3/param
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2014-01-15 13:42:55 +1300
committerMichael Adam <obnox@samba.org>2014-01-30 00:46:14 +0100
commit0d506d26fc6a3af1bfd77ad358a9c90ae497f8ab (patch)
tree7e2db7d753694bd9fa542efeb2ae98902f6815ce /source3/param
parent36c88ca9c194d49f51894bc00d3a1778d3800690 (diff)
downloadsamba-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.c45
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;
}
/***************************************************************************