From 658ccccdde51b270ffbbc6ce238792c427bab7dc Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Mon, 25 Aug 2003 17:55:33 +0000 Subject: fix bug #39; save the -W value and restore it after lp_load() (This used to be commit 79efe7d72ba503b58c8ad3b9b1c711f5ebb33521) --- source3/client/client.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/source3/client/client.c b/source3/client/client.c index 949933b890..67931b00b4 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -2779,6 +2779,7 @@ static void remember_query_host(const char *arg, poptContext pc; char *p; int rc = 0; + fstring new_workgroup; struct poptOption long_options[] = { POPT_AUTOHELP @@ -2809,6 +2810,11 @@ static void remember_query_host(const char *arg, *query_host = 0; *base_directory = 0; + + /* initialize the workgroup name so we can determine whether or + not it was set by a command line option */ + + set_global_myworkgroup( "" ); /* set default debug level to 0 regardless of what smb.conf sets */ DEBUGLEVEL_CLASS[DBGC_ALL] = 0; @@ -2891,13 +2897,24 @@ static void remember_query_host(const char *arg, * set by cmdline arg or remain default (0) */ AllowDebugChange = False; - + + /* save the workgroup... + + FIXME!! do we need to do tyhis for other options as well + (or maybe a generic way to keep lp_load() from overwriting + everything)? */ + + fstrcpy( new_workgroup, lp_workgroup() ); + if (!lp_load(dyn_CONFIGFILE,True,False,False)) { fprintf(stderr, "%s: Can't load %s - run testparm to debug it\n", argv[0], dyn_CONFIGFILE); } load_interfaces(); + + if ( strlen(new_workgroup) != 0 ) + set_global_myworkgroup( new_workgroup ); if(poptPeekArg(pc)) { pstrcpy(service,poptGetArg(pc)); -- cgit