From 47db32cd9cb2147bb40909352569d7c8274365db Mon Sep 17 00:00:00 2001 From: Pavel Březina Date: Thu, 18 Aug 2011 15:26:02 +0200 Subject: --debug-timestamps=1 is not passed to providers https://fedorahosted.org/sssd/ticket/972 --debug-timestamps=1 is now passed to providers --- src/monitor/monitor.c | 113 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 69 insertions(+), 44 deletions(-) (limited to 'src/monitor') diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c index 45744758..dd099841 100644 --- a/src/monitor/monitor.c +++ b/src/monitor/monitor.c @@ -56,6 +56,7 @@ #define MONITOR_DEF_PING_TIME 10 int cmdline_debug_level; +int cmdline_debug_timestamps; struct svc_spy; @@ -943,34 +944,43 @@ static int get_service_config(struct mt_ctx *ctx, const char *name, } if (!svc->command) { - if (cmdline_debug_level == SSSDBG_UNRESOLVED) { - svc->command = talloc_asprintf(svc, "%s/sssd_%s %s%s", - SSSD_LIBEXEC_PATH, - svc->name, - debug_timestamps? - "": "--debug-timestamps=0 ", - debug_to_file? - "--debug-to-files":""); - } else { - /* If the debug level was specified at the command-line, - * make sure to pass it into the children, overriding the - * config file. - */ - svc->command = talloc_asprintf(svc, "%s/sssd_%s -d %#.4x%s%s", - SSSD_LIBEXEC_PATH, - svc->name, - cmdline_debug_level, - debug_timestamps ? - "" : - " --debug-timestamps=0", - debug_to_file ? - " --debug-to-files" : - ""); - } + svc->command = talloc_asprintf( + svc, "%s/sssd_%s", SSSD_LIBEXEC_PATH, svc->name + ); if (!svc->command) { talloc_free(svc); return ENOMEM; } + + if (cmdline_debug_level != SSSDBG_UNRESOLVED) { + svc->command = talloc_asprintf_append( + svc->command, " -d %#.4x", cmdline_debug_level + ); + if (!svc->command) { + talloc_free(svc); + return ENOMEM; + } + } + + if (cmdline_debug_timestamps != SSSDBG_TIMESTAMP_UNRESOLVED) { + svc->command = talloc_asprintf_append( + svc->command, " --debug-timestamps=%d", cmdline_debug_timestamps + ); + if (!svc->command) { + talloc_free(svc); + return ENOMEM; + } + } + + if (debug_to_file) { + svc->command = talloc_strdup_append( + svc->command, " --debug-to-files" + ); + if (!svc->command) { + talloc_free(svc); + return ENOMEM; + } + } } ret = confdb_get_int(ctx->cdb, svc, path, @@ -1089,29 +1099,43 @@ static int get_provider_config(struct mt_ctx *ctx, const char *name, /* if there are no custom commands, build a default one */ if (!svc->command) { - if (cmdline_debug_level == SSSDBG_UNRESOLVED) { - svc->command = talloc_asprintf(svc, - "%s/sssd_be --domain %s%s%s", - SSSD_LIBEXEC_PATH, - svc->name, - debug_timestamps ? "" - : " --debug-timestamps=0", - debug_to_file ? " --debug-to-files" : ""); - } else { - svc->command = talloc_asprintf(svc, - "%s/sssd_be --domain %s -d %#.4x%s%s ", - SSSD_LIBEXEC_PATH, - svc->name, - cmdline_debug_level, - debug_timestamps ? "" - : " --debug-timestamps=0", - debug_to_file ? " --debug-to-files" : ""); - } - + svc->command = talloc_asprintf( + svc, "%s/sssd_be --domain %s", SSSD_LIBEXEC_PATH, svc->name + ); if (!svc->command) { talloc_free(svc); return ENOMEM; } + + if (cmdline_debug_level != SSSDBG_UNRESOLVED) { + svc->command = talloc_asprintf_append( + svc->command, " -d %#.4x", cmdline_debug_level + ); + if (!svc->command) { + talloc_free(svc); + return ENOMEM; + } + } + + if (cmdline_debug_timestamps != SSSDBG_TIMESTAMP_UNRESOLVED) { + svc->command = talloc_asprintf_append( + svc->command, " --debug-timestamps=%d", cmdline_debug_timestamps + ); + if (!svc->command) { + talloc_free(svc); + return ENOMEM; + } + } + + if (debug_to_file) { + svc->command = talloc_strdup_append( + svc->command, " --debug-to-files" + ); + if (!svc->command) { + talloc_free(svc); + return ENOMEM; + } + } } *svc_cfg = svc; @@ -2337,10 +2361,11 @@ int main(int argc, const char *argv[]) CONVERT_AND_SET_DEBUG_LEVEL(debug_level); - /* If the level was passed at the command-line, we want + /* If the level or timestamps was passed at the command-line, we want * to save it and pass it to the children later. */ cmdline_debug_level = debug_level; + cmdline_debug_timestamps = debug_timestamps; if (opt_daemon && opt_interactive) { fprintf(stderr, "Option -i|--interactive is not allowed together with -D|--daemon\n"); -- cgit