static BOOL bLoaded = False;
-#ifndef GLOBAL_NAME
-#define GLOBAL_NAME "global"
-#endif
-
-#ifndef PRINTERS_NAME
-#define PRINTERS_NAME "printers"
-#endif
-
-#ifndef HOMES_NAME
-#define HOMES_NAME "homes"
-#endif
-
/* some helpful bits */
#define LP_SNUM_OK(i) (((i) >= 0) && ((i) < iNumServices) && ServicePtrs[(i)]->valid)
#define VALID(i) ServicePtrs[i]->valid
do_parameter("tls cafile", "tls/ca.pem", NULL);
do_parameter_var("js include", "%s/js", dyn_LIBDIR);
do_parameter_var("setup directory", "%s/setup", dyn_LIBDIR);
+
+ for (i = 0; parm_table[i].label; i++) {
+ if (!(parm_table[i].flags & FLAG_CMDLINE)) {
+ parm_table[i].flags |= FLAG_DEFAULT;
+ }
+ }
}
static TALLOC_CTX *lp_talloc;
break;
}
+ if (parm_table[parmnum].flags & FLAG_DEFAULT) {
+ parm_table[parmnum].flags &= ~FLAG_DEFAULT;
+ /* we have to also unset FLAG_DEFAULT on aliases */
+ for (i=parmnum-1;i>=0 && parm_table[i].ptr == parm_table[parmnum].ptr;i--) {
+ parm_table[i].flags &= ~FLAG_DEFAULT;
+ }
+ for (i=parmnum+1;i<NUMPARAMETERS && parm_table[i].ptr == parm_table[parmnum].ptr;i++) {
+ parm_table[i].flags &= ~FLAG_DEFAULT;
+ }
+ }
+
return (True);
}
Display the contents of the global structure.
***************************************************************************/
-static void dump_globals(FILE *f)
+static void dump_globals(FILE *f, BOOL show_defaults)
{
int i;
struct param_opt *data;
if (parm_table[i].class == P_GLOBAL &&
parm_table[i].ptr &&
(i == 0 || (parm_table[i].ptr != parm_table[i - 1].ptr))) {
- if (defaults_saved && is_default(i))
+ if (!show_defaults && (parm_table[i].flags & FLAG_DEFAULT))
continue;
fprintf(f, "\t%s = ", parm_table[i].label);
print_parameter(&parm_table[i], parm_table[i].ptr, f);
if (show_defaults)
defaults_saved = False;
- dump_globals(f);
+ dump_globals(f, show_defaults);
dump_a_service(&sDefault, f);
#define FLAG_DEVELOPER 0x0040 /* Parameters that the wizard will operate on */
#define FLAG_DEPRECATED 0x1000 /* options that should no longer be used */
#define FLAG_HIDE 0x2000 /* options that should be hidden in SWAT */
-#define FLAG_DOS_STRING 0x4000 /* convert from UNIX to DOS codepage when reading this string. */
+#define FLAG_DEFAULT 0x4000 /* this option was a default */
#define FLAG_CMDLINE 0x8000 /* this option was set from the command line */
+#ifndef GLOBAL_NAME
+#define GLOBAL_NAME "global"
+#endif
+
+#ifndef PRINTERS_NAME
+#define PRINTERS_NAME "printers"
+#endif
+
+#ifndef HOMES_NAME
+#define HOMES_NAME "homes"
+#endif
+
/*
static BOOL show_all_parameters = False;
static char *parameter_name = NULL;
- static const char *section_name = NULL;
static char *new_local_machine = NULL;
*/
+ static const char *section_name = NULL;
static const char *cname;
static const char *caddr;
static int show_defaults;
These are harder to do with the new code structure
{"show-all-parameters", '\0', POPT_ARG_VAL, &show_all_parameters, True, "Show the parameters, type, possible values" },
{"parameter-name", '\0', POPT_ARG_STRING, ¶meter_name, 0, "Limit testparm to a named parameter" },
- {"section-name", '\0', POPT_ARG_STRING, §ion_name, 0, "Limit testparm to a named section" },
*/
+ {"section-name", '\0', POPT_ARG_STRING, §ion_name, 0, "Limit testparm to a named section" },
{"client-name", '\0', POPT_ARG_STRING, &cname, 0, "Client DNS name for 'hosts allow' checking (should match reverse lookup)"},
{"client-ip", '\0', POPT_ARG_STRING, &caddr, 0, "Client IP address for 'hosts allow' checking"},
POPT_COMMON_VERSION
fflush(stdout);
getc(stdin);
}
- lp_dump(stdout, show_defaults, lp_numservices());
+ if (section_name) {
+ BOOL isGlobal = False;
+ if (!section_name) {
+ section_name = GLOBAL_NAME;
+ isGlobal = True;
+ } else if ((isGlobal=!strwicmp(section_name, GLOBAL_NAME)) == 0 &&
+ (s=lp_servicenumber(section_name)) == -1) {
+ fprintf(stderr,"Unknown section %s\n",
+ section_name);
+ return(1);
+ }
+ if (isGlobal == True) {
+ lp_dump(stdout, show_defaults, 0);
+ } else {
+ lp_dump_one(stdout, show_defaults, s);
+ }
+ } else {
+ lp_dump(stdout, show_defaults, lp_numservices());
+ }
+ return(ret);
}
if(cname && caddr){