diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/client/client.c | 8 | ||||
-rw-r--r-- | source3/lib/debug.c | 7 | ||||
-rw-r--r-- | source3/lib/popt_common.c | 2 |
3 files changed, 15 insertions, 2 deletions
diff --git a/source3/client/client.c b/source3/client/client.c index 214b787297..1da35fcc43 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -2853,6 +2853,7 @@ static int do_message_op(void) int main(int argc,char *argv[]) { extern BOOL AllowDebugChange; + extern BOOL override_logfile; pstring base_directory; int opt; pstring query_host; @@ -2989,11 +2990,14 @@ static int do_message_op(void) /* save the workgroup... - FIXME!! do we need to do tyhis for other options as well + FIXME!! do we need to do this for other options as well (or maybe a generic way to keep lp_load() from overwriting everything)? */ - fstrcpy( new_workgroup, lp_workgroup() ); + fstrcpy( new_workgroup, lp_workgroup() ); + + if ( override_logfile ) + setup_logging( lp_logfile(), False ); if (!lp_load(dyn_CONFIGFILE,True,False,False)) { fprintf(stderr, "%s: Can't load %s - run testparm to debug it\n", diff --git a/source3/lib/debug.c b/source3/lib/debug.c index 0050761e9a..1a926053bb 100644 --- a/source3/lib/debug.c +++ b/source3/lib/debug.c @@ -84,6 +84,13 @@ BOOL debug_warn_unknown_class = True; BOOL debug_auto_add_unknown_class = True; BOOL AllowDebugChange = True; +/* + used to check if the user specified a + logfile on the command line +*/ +BOOL override_logfile; + + /* * This is to allow assignment to DEBUGLEVEL before the debug * system has been initialised. diff --git a/source3/lib/popt_common.c b/source3/lib/popt_common.c index 9a5a112022..6c35213d43 100644 --- a/source3/lib/popt_common.c +++ b/source3/lib/popt_common.c @@ -35,6 +35,7 @@ extern pstring user_socket_options; extern BOOL AllowDebugChange; +extern BOOL override_logfile; struct user_auth_info cmdline_auth_info; @@ -95,6 +96,7 @@ static void popt_common_callback(poptContext con, if (arg) { pstr_sprintf(logfile, "%s/log.%s", arg, pname); lp_set_logfile(logfile); + override_logfile = True; } break; |