From: Andrew Bartlett Date: Fri, 29 Oct 2010 04:06:36 +0000 (+1100) Subject: s3-debug Remove 'AllowDebugChange' and use lp_set_cmdline() instead X-Git-Url: http://git.samba.org/samba.git/?p=kai%2Fsamba.git;a=commitdiff_plain;h=cf4de8ec2c8df2ceabbe3d836d296b058e7b19fb s3-debug Remove 'AllowDebugChange' and use lp_set_cmdline() instead By removing this global variable, the API between the two different debug systems is made more similar. Both s3 and s4 now have lp_set_cmdline() which ensures that the smb.conf cannot overwrite these the user-specified log level. Andrew Bartlett --- diff --git a/nsswitch/wins.c b/nsswitch/wins.c index b4bc788f841..aa02f32ce14 100644 --- a/nsswitch/wins.c +++ b/nsswitch/wins.c @@ -94,8 +94,7 @@ static int wins_lookup_open_socket_in(void) static void nss_wins_init(void) { initialised = 1; - DEBUGLEVEL = 0; - AllowDebugChange = False; + lp_set_cmdline("log level", "0"); TimeInit(); setup_logging("nss_wins",False); diff --git a/source3/client/client.c b/source3/client/client.c index a7c09cf6c52..2c02e318a55 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -5047,7 +5047,7 @@ static int do_message_op(struct user_auth_info *a_info) /* set default debug level to 1 regardless of what smb.conf sets */ setup_logging( "smbclient", DEBUG_DEFAULT_STDERR ); - DEBUGLEVEL_CLASS[DBGC_ALL] = 1; + lp_set_cmdline("log level", "1"); load_case_tables(); @@ -5190,12 +5190,6 @@ static int do_message_op(struct user_auth_info *a_info) poptGetArg(pc)); } - /* - * Don't load debug level from smb.conf. It should be - * set by cmdline arg or remain default (0) - */ - AllowDebugChange = false; - /* save the workgroup... FIXME!! do we need to do this for other options as well diff --git a/source3/lib/debug.c b/source3/lib/debug.c index 321b08e0996..ea0aad2c90e 100644 --- a/source3/lib/debug.c +++ b/source3/lib/debug.c @@ -89,7 +89,6 @@ static struct { static char *debugf = NULL; bool debug_warn_unknown_class = True; bool debug_auto_add_unknown_class = True; -bool AllowDebugChange = True; /* used to check if the user specified a @@ -469,9 +468,6 @@ bool debug_parse_levels(const char *params_str) /* Just in case */ debug_init(); - if (AllowDebugChange == False) - return True; - params = str_list_make_v3(talloc_tos(), params_str, NULL); if (debug_parse_params(params)) { diff --git a/source3/lib/netapi/netapi.c b/source3/lib/netapi/netapi.c index 30042467430..7b3ab321aff 100644 --- a/source3/lib/netapi/netapi.c +++ b/source3/lib/netapi/netapi.c @@ -23,8 +23,6 @@ #include "secrets.h" #include "krb5_env.h" -extern bool AllowDebugChange; - struct libnetapi_ctx *stat_ctx = NULL; TALLOC_CTX *frame = NULL; static bool libnetapi_initialized = false; @@ -75,15 +73,11 @@ NET_API_STATUS libnetapi_init(struct libnetapi_ctx **context) return W_ERROR_V(WERR_NOMEM); } - if (!DEBUGLEVEL) { - DEBUGLEVEL = 0; - } + lp_set_cmdline("log level", "0"); /* prevent setup_logging() from closing x_stderr... */ setup_logging("libnetapi", DEBUG_STDERR); - AllowDebugChange = false; - load_case_tables(); if (!lp_load(get_dyn_CONFIGFILE(), true, false, false, false)) { @@ -92,8 +86,6 @@ NET_API_STATUS libnetapi_init(struct libnetapi_ctx **context) return W_ERROR_V(WERR_GENERAL_FAILURE); } - AllowDebugChange = true; - init_names(); load_interfaces(); reopen_logs(); @@ -185,9 +177,8 @@ NET_API_STATUS libnetapi_free(struct libnetapi_ctx *ctx) NET_API_STATUS libnetapi_set_debuglevel(struct libnetapi_ctx *ctx, const char *debuglevel) { - AllowDebugChange = true; ctx->debuglevel = talloc_strdup(ctx, debuglevel); - if (!debug_parse_levels(debuglevel)) { + if (!lp_set_cmdline("log level", debuglevel)) { return W_ERROR_V(WERR_GENERAL_FAILURE); } return NET_API_STATUS_SUCCESS; diff --git a/source3/lib/popt_common.c b/source3/lib/popt_common.c index a332cde5661..32906432df4 100644 --- a/source3/lib/popt_common.c +++ b/source3/lib/popt_common.c @@ -36,7 +36,6 @@ enum {OPT_OPTION=1}; -extern bool AllowDebugChange; extern bool override_logfile; static void set_logfile(poptContext con, const char * arg) @@ -107,8 +106,7 @@ static void popt_common_callback(poptContext con, case 'd': if (arg) { - debug_parse_levels(arg); - AllowDebugChange = False; + lp_set_cmdline("log level", arg); } break; diff --git a/source3/param/test_lp_load.c b/source3/param/test_lp_load.c index 94715b5a596..d5673587a05 100644 --- a/source3/param/test_lp_load.c +++ b/source3/param/test_lp_load.c @@ -20,8 +20,6 @@ #include "includes.h" #include "popt_common.h" -extern bool AllowDebugChange; - int main(int argc, const char **argv) { const char *config_file = get_dyn_CONFIGFILE(); @@ -41,7 +39,7 @@ int main(int argc, const char **argv) TALLOC_CTX *frame = talloc_stackframe(); load_case_tables(); - DEBUGLEVEL_CLASS[DBGC_ALL] = 0; + lp_set_cmdline("log level", "0"); pc = poptGetContext(NULL, argc, argv, long_options, POPT_CONTEXT_KEEP_FIRST); @@ -61,9 +59,6 @@ int main(int argc, const char **argv) count = atoi(count_str); } - /* Don't let the debuglevel be changed by smb.conf. */ - AllowDebugChange = False; - for (i=0; i < count; i++) { printf("call lp_load() #%d: ", i+1); if (!lp_load_with_registry_shares(config_file, diff --git a/source3/torture/masktest.c b/source3/torture/masktest.c index b8bcb4ade00..335bc4ca223 100644 --- a/source3/torture/masktest.c +++ b/source3/torture/masktest.c @@ -34,7 +34,6 @@ static int ignore_dot_errors = 0; extern char *optarg; extern int optind; -extern bool AllowDebugChange; /* a test fn for LANMAN mask support */ static int ms_fnmatch_lanman_core(const char *pattern, const char *string) @@ -484,8 +483,7 @@ static void usage(void) setlinebuf(stdout); - DEBUGLEVEL = 0; - AllowDebugChange = False; + lp_set_cmdline("log level", "0"); if (argc < 2 || argv[1][0] == '-') { usage(); diff --git a/source3/utils/dbwrap_tool.c b/source3/utils/dbwrap_tool.c index ef61ea9dbbf..796bea938d4 100644 --- a/source3/utils/dbwrap_tool.c +++ b/source3/utils/dbwrap_tool.c @@ -22,8 +22,6 @@ #include "includes.h" #include "dbwrap.h" -extern bool AllowDebugChange; - typedef enum { OP_FETCH, OP_STORE, OP_DELETE, OP_ERASE, OP_LISTKEYS } dbwrap_op; typedef enum { TYPE_INT32, TYPE_UINT32 } dbwrap_type; @@ -214,9 +212,8 @@ int main(int argc, const char **argv) int ret = 1; load_case_tables(); - DEBUGLEVEL_CLASS[DBGC_ALL] = 0; + lp_set_cmdline("log level", "0"); setup_logging(argv[0], DEBUG_STDERR); - AllowDebugChange = false; lp_load(get_dyn_CONFIGFILE(), true, false, false, true); if ((argc < 3) || (argc > 6)) { diff --git a/source3/utils/dbwrap_torture.c b/source3/utils/dbwrap_torture.c index 35d00734896..abb17e8e2ac 100644 --- a/source3/utils/dbwrap_torture.c +++ b/source3/utils/dbwrap_torture.c @@ -33,8 +33,6 @@ #include #endif -extern bool AllowDebugChange; - #define DEFAULT_DB_NAME "transaction.tdb" static int timelimit = 10; @@ -259,7 +257,7 @@ int main(int argc, const char *argv[]) } setup_logging(argv[0], DEBUG_STDERR); - DEBUGLEVEL_CLASS[DBGC_ALL] = 0; + lp_set_cmdline("log level", "0"); pc = poptGetContext(argv[0], argc, argv, popt_options, POPT_CONTEXT_KEEP_FIRST); @@ -280,7 +278,6 @@ int main(int argc, const char *argv[]) } load_case_tables(); - AllowDebugChange = false; lp_load(get_dyn_CONFIGFILE(), true, false, false, true); ev_ctx = tevent_context_init(mem_ctx); diff --git a/source3/utils/net.c b/source3/utils/net.c index 6993f9e52c4..44119dc2c6f 100644 --- a/source3/utils/net.c +++ b/source3/utils/net.c @@ -47,8 +47,6 @@ #include "lib/netapi/netapi.h" #include "../libcli/security/security.h" -extern bool AllowDebugChange; - #ifdef WITH_FAKE_KASERVER #include "utils/net_afs.h" #endif @@ -835,7 +833,7 @@ static struct functable net_func[] = { #endif /* set default debug level to 0 regardless of what smb.conf sets */ - DEBUGLEVEL_CLASS[DBGC_ALL] = 0; + lp_set_cmdline("log level", "0"); c->private_data = net_func; pc = poptGetContext(NULL, argc, (const char **) argv, long_options, @@ -874,11 +872,6 @@ static struct functable net_func[] = { } } - /* - * Don't load debug level from smb.conf. It should be - * set by cmdline arg or remain default (0) - */ - AllowDebugChange = false; lp_load(get_dyn_CONFIGFILE(), true, false, false, true); argv_new = (const char **)poptGetArgs(pc); diff --git a/source3/utils/nmblookup.c b/source3/utils/nmblookup.c index d7e0cb23ced..b63b0a38e53 100644 --- a/source3/utils/nmblookup.c +++ b/source3/utils/nmblookup.c @@ -22,8 +22,6 @@ #include "includes.h" #include "popt_common.h" -extern bool AllowDebugChange; - static bool give_flags = false; static bool use_bcast = true; static bool got_bcast = false; diff --git a/source3/utils/sharesec.c b/source3/utils/sharesec.c index ae959bafb5d..7ed238cdd46 100644 --- a/source3/utils/sharesec.c +++ b/source3/utils/sharesec.c @@ -544,7 +544,7 @@ int main(int argc, const char *argv[]) /* set default debug level to 1 regardless of what smb.conf sets */ setup_logging( "sharesec", DEBUG_STDERR); - DEBUGLEVEL_CLASS[DBGC_ALL] = 1; + lp_set_cmdline("log level", "1"); pc = poptGetContext("sharesec", argc, argv, long_options, 0); diff --git a/source3/utils/smbcacls.c b/source3/utils/smbcacls.c index 5ccdae6d08f..4de24dc767c 100644 --- a/source3/utils/smbcacls.c +++ b/source3/utils/smbcacls.c @@ -27,8 +27,6 @@ #include "rpc_client/cli_lsarpc.h" #include "../libcli/security/security.h" -extern bool AllowDebugChange; - static int test_args; #define CREATE_ACCESS_READ READ_CONTROL_ACCESS @@ -1204,8 +1202,7 @@ static struct cli_state *connect_one(struct user_auth_info *auth_info, /* set default debug level to 1 regardless of what smb.conf sets */ setup_logging( "smbcacls", DEBUG_STDERR); - DEBUGLEVEL_CLASS[DBGC_ALL] = 1; - AllowDebugChange = false; + lp_set_cmdline("log level", "1"); setlinebuf(stdout); diff --git a/source3/utils/smbcquotas.c b/source3/utils/smbcquotas.c index 9721bc0b47b..980ba2b5c1e 100644 --- a/source3/utils/smbcquotas.c +++ b/source3/utils/smbcquotas.c @@ -465,7 +465,7 @@ FSQFLAGS:QUOTA_ENABLED/DENY_DISK/LOG_SOFTLIMIT/LOG_HARD_LIMIT", "SETSTRING" }, /* set default debug level to 1 regardless of what smb.conf sets */ setup_logging( "smbcquotas", DEBUG_STDERR); - DEBUGLEVEL_CLASS[DBGC_ALL] = 1; + lp_set_cmdline("log level", "1"); setlinebuf(stdout); diff --git a/source3/utils/smbpasswd.c b/source3/utils/smbpasswd.c index 0fc002ad8aa..c530c78f41f 100644 --- a/source3/utils/smbpasswd.c +++ b/source3/utils/smbpasswd.c @@ -20,8 +20,6 @@ #include "secrets.h" #include "../librpc/gen_ndr/samr.h" -extern bool AllowDebugChange; - /* * Next two lines needed for SunOS and don't * hurt anything else... @@ -570,8 +568,6 @@ int main(int argc, char **argv) int local_flags = 0; int ret; - AllowDebugChange = False; - #if defined(HAVE_SET_AUTH_PARAMETERS) set_auth_parameters(argc, argv); #endif /* HAVE_SET_AUTH_PARAMETERS */ diff --git a/source3/utils/split_tokens.c b/source3/utils/split_tokens.c index e07d03aded0..5d4b5a9260f 100644 --- a/source3/utils/split_tokens.c +++ b/source3/utils/split_tokens.c @@ -26,8 +26,6 @@ #include "includes.h" #include "popt_common.h" -extern bool AllowDebugChange; - int main(int argc, const char *argv[]) { const char *config_file = get_dyn_CONFIGFILE(); @@ -58,9 +56,8 @@ int main(int argc, const char *argv[]) fprintf(stderr, "ERROR: missing sequence string\n"); return 1; } - - DEBUGLEVEL = 0; - AllowDebugChange = false; + + lp_set_cmdline("log level", "0"); if (!lp_load(config_file,false,true,false,true)) { fprintf(stderr,"Error loading services.\n"); diff --git a/source3/utils/testparm.c b/source3/utils/testparm.c index 8b8a31ea40e..b17d61b9145 100644 --- a/source3/utils/testparm.c +++ b/source3/utils/testparm.c @@ -34,8 +34,6 @@ #include "includes.h" #include "popt_common.h" -extern bool AllowDebugChange; - /******************************************************************* Check if a directory exists. ********************************************************************/ @@ -352,7 +350,7 @@ rameter is ignored when using CUPS libraries.\n", * Allow it to be overridden by the command line, * not by smb.conf. */ - DEBUGLEVEL_CLASS[DBGC_ALL] = 2; + lp_set_cmdline("log level", "2"); pc = poptGetContext(NULL, argc, argv, long_options, POPT_CONTEXT_KEEP_FIRST); @@ -381,9 +379,6 @@ rameter is ignored when using CUPS libraries.\n", goto done; } - /* Don't let the debuglevel be changed by smb.conf. */ - AllowDebugChange = False; - fprintf(stderr,"Load smb config files from %s\n",config_file); if (!lp_load_with_registry_shares(config_file,False,True,False,True)) {