diff options
author | Derrell Lipman <derrell@samba.org> | 2006-01-28 22:53:04 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:06:18 -0500 |
commit | 9c15bd311db76885b27f30ba92d885833f668550 (patch) | |
tree | 20ec704d6d0caa99936d86d32869917592be3b8d /source3/param | |
parent | ba611cb0368629dd7b98c20ed88e9394be0c29e5 (diff) | |
download | samba-9c15bd311db76885b27f30ba92d885833f668550.tar.gz samba-9c15bd311db76885b27f30ba92d885833f668550.tar.bz2 samba-9c15bd311db76885b27f30ba92d885833f668550.zip |
r13212: r12414@cabra: derrell | 2006-01-28 17:52:17 -0500
lp_load() could not be called multiple times to modify parameter settings based
on reading from multiple configuration settings. Each time, it initialized all
of the settings back to their defaults before reading the specified
configuration file.
This patch adds a parameter to lp_load() specifying whether the settings should
be initialized. It does, however, still force the settings to be initialized
the first time, even if the request was to not initialize them. (Not doing so
could wreak havoc due to uninitialized values.)
(This used to be commit f2a24de769d1b2266e576597c57a8e3b1e2a2b51)
Diffstat (limited to 'source3/param')
-rw-r--r-- | source3/param/loadparm.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 83a5b2fc3c..a2aa851b09 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -1354,11 +1354,17 @@ static void init_printer_values(service *pService) Initialise the global parameter structure. ***************************************************************************/ -static void init_globals(void) +static void init_globals(BOOL first_time_only) { static BOOL done_init = False; pstring s; + /* If requested to initialize only once and we've already done it... */ + if (first_time_only && done_init) { + /* ... then we have nothing more to do */ + return; + } + if (!done_init) { int i; @@ -4188,8 +4194,11 @@ static void set_allowed_client_auth(void) False on failure. ***************************************************************************/ -BOOL lp_load(const char *pszFname, BOOL global_only, BOOL save_defaults, - BOOL add_ipc) +BOOL lp_load(const char *pszFname, + BOOL global_only, + BOOL save_defaults, + BOOL add_ipc, + BOOL initialize_globals) { pstring n2; BOOL bRetval; @@ -4208,7 +4217,7 @@ BOOL lp_load(const char *pszFname, BOOL global_only, BOOL save_defaults, bInGlobalSection = True; bGlobalOnly = global_only; - init_globals(); + init_globals(! initialize_globals); debug_init(); if (save_defaults) { |