From 0433896ee8a0184d7e17b94f2309b457c65fc72d Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 5 Jan 2021 14:23:27 +0100 Subject: [PATCH] lib:cmdline: Add a debug only option Signed-off-by: Andreas Schneider Reviewed-by: Andrew Bartlett --- lib/cmdline/cmdline.c | 25 +++++++++++++++++++++++++ lib/cmdline/cmdline.h | 15 ++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/lib/cmdline/cmdline.c b/lib/cmdline/cmdline.c index e7e65ff13be..15be2e42ff4 100644 --- a/lib/cmdline/cmdline.c +++ b/lib/cmdline/cmdline.c @@ -437,6 +437,28 @@ static void popt_samba_callback(poptContext popt_ctx, } } +static struct poptOption popt_common_debug[] = { + { + .argInfo = POPT_ARG_CALLBACK|POPT_CBFLAG_PRE|POPT_CBFLAG_POST, + .arg = (void *)popt_samba_callback, + }, + { + .longName = "debuglevel", + .shortName = 'd', + .argInfo = POPT_ARG_STRING, + .val = 'd', + .descrip = "Set debug level", + .argDescrip = "DEBUGLEVEL", + }, + { + .longName = "debug-stdout", + .argInfo = POPT_ARG_NONE, + .val = OPT_DEBUG_STDOUT, + .descrip = "Send debug output to standard output", + }, + POPT_TABLEEND +}; + static struct poptOption popt_common_samba[] = { { .argInfo = POPT_ARG_CALLBACK|POPT_CBFLAG_PRE|POPT_CBFLAG_POST, @@ -1193,6 +1215,9 @@ static struct poptOption popt_legacy_s4[] = { struct poptOption *samba_cmdline_get_popt(enum smb_cmdline_popt_options opt) { switch (opt) { + case SAMBA_CMDLINE_POPT_OPT_DEBUG_ONLY: + return popt_common_debug; + break; case SAMBA_CMDLINE_POPT_OPT_SAMBA: return popt_common_samba; break; diff --git a/lib/cmdline/cmdline.h b/lib/cmdline/cmdline.h index 490d38216d0..14a928d0b5b 100644 --- a/lib/cmdline/cmdline.h +++ b/lib/cmdline/cmdline.h @@ -38,7 +38,8 @@ enum samba_cmdline_config_type { }; enum smb_cmdline_popt_options { - SAMBA_CMDLINE_POPT_OPT_SAMBA = 1, + SAMBA_CMDLINE_POPT_OPT_DEBUG_ONLY = 1, + SAMBA_CMDLINE_POPT_OPT_SAMBA, SAMBA_CMDLINE_POPT_OPT_CONNECTION, SAMBA_CMDLINE_POPT_OPT_CREDENTIALS, SAMBA_CMDLINE_POPT_OPT_VERSION, @@ -139,6 +140,18 @@ poptContext samba_popt_get_context(const char * name, const struct poptOption * options, unsigned int flags); +/** + * @brief A popt structure for common debug options only. + */ +#define POPT_COMMON_DEBUG_ONLY { \ + .longName = NULL, \ + .shortName = '\0', \ + .argInfo = POPT_ARG_INCLUDE_TABLE, \ + .arg = samba_cmdline_get_popt(SAMBA_CMDLINE_POPT_OPT_DEBUG_ONLY), \ + .val = 0, \ + .descrip = "Common debug options:", \ + .argDescrip = NULL }, + /** * @brief A popt structure for common samba options. */ -- 2.47.3