diff options
author | Derrell Lipman <derrell@samba.org> | 2005-03-31 20:28:47 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:56:25 -0500 |
commit | 8de11f06df03e19fe92f44da10a10eab30e118b2 (patch) | |
tree | 110af07308ea2c4a2f96497840f45ad9cb0fbd2a /source3 | |
parent | fd52f0eeae34fee8e996d6c906717cee043d7243 (diff) | |
download | samba-8de11f06df03e19fe92f44da10a10eab30e118b2.tar.gz samba-8de11f06df03e19fe92f44da10a10eab30e118b2.tar.bz2 samba-8de11f06df03e19fe92f44da10a10eab30e118b2.zip |
r6155: Fixes bug #1133
Added provision for overloading some global configuration options via the new,
per-user file ~/.smb/smb.conf.append which is read after the global config
file is read (and only if the global config file was read). This leave the
original, BC behavior of ~/.smb/smb.conf which, if found, is read but causes
the global config file to not be read.
Also fixed a potential seg fault in to lp_dump_one().
(This used to be commit 2c5a6305bd127b1a7e65356c2b3aa5c13cd2bd74)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/libsmb/libsmbclient.c | 23 | ||||
-rw-r--r-- | source3/param/loadparm.c | 2 |
2 files changed, 20 insertions, 5 deletions
diff --git a/source3/libsmb/libsmbclient.c b/source3/libsmb/libsmbclient.c index ae9a660a09..657d0925b0 100644 --- a/source3/libsmb/libsmbclient.c +++ b/source3/libsmb/libsmbclient.c @@ -5169,10 +5169,25 @@ SMBCCTX * smbc_init_context(SMBCCTX * context) * defaults ... */ - if (!lp_load(dyn_CONFIGFILE, True, False, False)) { - DEBUG(5, ("Could not load either config file: %s or %s\n", - conf, dyn_CONFIGFILE)); - } + if (!lp_load(dyn_CONFIGFILE, True, False, False)) { + DEBUG(5, ("Could not load either config file: " + "%s or %s\n", + conf, dyn_CONFIGFILE)); + } else { + /* + * We loaded the global config file. Now lets + * load user-specific modifications to the + * global config. + */ + slprintf(conf, sizeof(conf), + "%s/.smb/smb.conf.append", home); + if (!lp_load(conf, True, False, False)) { + DEBUG(10, + ("Could not append config file: " + "%s\n", + conf)); + } + } } reopen_logs(); /* Get logging working ... */ diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index f28b0c49ae..8ec7efddcd 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -73,7 +73,7 @@ extern pstring user_socket_options; /* some helpful bits */ #define LP_SNUM_OK(i) (((i) >= 0) && ((i) < iNumServices) && ServicePtrs[(i)]->valid) -#define VALID(i) ServicePtrs[i]->valid +#define VALID(i) (ServicePtrs != NULL && ServicePtrs[i]->valid) int keepalive = DEFAULT_KEEPALIVE; BOOL use_getwd_cache = True; |