summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/param/loadparm.c12
-rw-r--r--source3/param/loadparm.c45
2 files changed, 9 insertions, 48 deletions
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index bf3b09486ce..cf943261fe1 100644
--- a/lib/param/loadparm.c
+++ b/lib/param/loadparm.c
@@ -1949,8 +1949,8 @@ static void dump_globals(struct loadparm_context *lp_ctx, FILE *f,
* Display the contents of a single services record.
*/
-static void dump_a_service(struct loadparm_service * pService, struct loadparm_service *sDefault, FILE * f,
- unsigned int *flags)
+void lpcfg_dump_a_service(struct loadparm_service * pService, struct loadparm_service *sDefault, FILE * f,
+ unsigned int *flags, bool show_defaults)
{
int i;
struct parmlist_entry *data;
@@ -1967,7 +1967,7 @@ static void dump_a_service(struct loadparm_service * pService, struct loadparm_s
if (flags && (flags[i] & FLAG_DEFAULT)) {
continue;
}
- if (defaults_saved) {
+ if (!show_defaults) {
if (is_default(sDefault, i)) {
continue;
}
@@ -2711,11 +2711,9 @@ void lpcfg_dump(struct loadparm_context *lp_ctx, FILE *f, bool show_defaults,
return;
}
- defaults_saved = !show_defaults;
-
dump_globals(lp_ctx, f, show_defaults);
- dump_a_service(lp_ctx->sDefault, lp_ctx->sDefault, f, lp_ctx->flags);
+ lpcfg_dump_a_service(lp_ctx->sDefault, lp_ctx->sDefault, f, lp_ctx->flags, show_defaults);
for (iService = 0; iService < maxtoprint; iService++)
lpcfg_dump_one(f, show_defaults, lp_ctx->services[iService], lp_ctx->sDefault);
@@ -2729,7 +2727,7 @@ void lpcfg_dump_one(FILE *f, bool show_defaults, struct loadparm_service *servic
if (service != NULL) {
if (service->szService[0] == '\0')
return;
- dump_a_service(service, sDefault, f, NULL);
+ lpcfg_dump_a_service(service, sDefault, f, NULL, show_defaults);
}
}
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index cbaabcc7db3..c5d5dcc4cc4 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -3010,46 +3010,9 @@ static void dump_globals(FILE *f)
Display the contents of a single services record.
***************************************************************************/
-static void dump_a_service(struct loadparm_service *pService, FILE * f)
+static void dump_a_service(struct loadparm_service *pService, FILE * f, bool show_defaults)
{
- int i;
- struct parmlist_entry *data;
-
- if (pService != &sDefault)
- fprintf(f, "[%s]\n", pService->szService);
-
- for (i = 0; parm_table[i].label; i++) {
-
- if (parm_table[i].p_class == P_LOCAL &&
- !(parm_table[i].flags & FLAG_META) &&
- (*parm_table[i].label != '-') &&
- (i == 0 || (parm_table[i].offset != parm_table[i - 1].offset)))
- {
- if (pService == &sDefault) {
- if (defaults_saved && is_default(i))
- continue;
- } else {
- if (lpcfg_equal_parameter(parm_table[i].type,
- lp_parm_ptr(pService, &parm_table[i]),
- lp_parm_ptr(NULL, &parm_table[i])))
- continue;
- }
-
- fprintf(f, "\t%s = ", parm_table[i].label);
- lpcfg_print_parameter(&parm_table[i],
- lp_parm_ptr(pService, &parm_table[i]),
- f);
- fprintf(f, "\n");
- }
- }
-
- if (pService->param_opt != NULL) {
- data = pService->param_opt;
- while(data) {
- fprintf(f, "\t%s = %s\n", data->key, data->value);
- data = data->next;
- }
- }
+ return lpcfg_dump_a_service(pService, &sDefault, f, NULL, show_defaults);
}
/***************************************************************************
@@ -4320,7 +4283,7 @@ void lp_dump(FILE *f, bool show_defaults, int maxtoprint)
dump_globals(f);
- dump_a_service(&sDefault, f);
+ dump_a_service(&sDefault, f, show_defaults);
for (iService = 0; iService < maxtoprint; iService++) {
fprintf(f,"\n");
@@ -4337,7 +4300,7 @@ void lp_dump_one(FILE * f, bool show_defaults, int snum)
if (VALID(snum)) {
if (ServicePtrs[snum]->szService[0] == '\0')
return;
- dump_a_service(ServicePtrs[snum], f);
+ dump_a_service(ServicePtrs[snum], f, show_defaults);
}
}