From: Corey Farrell Date: Thu, 21 May 2015 01:53:46 +0000 (-0400) Subject: Logger: Reset defaults before processing config. X-Git-Tag: 11.18.0-rc1~5^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58de2864677d55266ad41bcf4c6950e25239db7b;p=thirdparty%2Fasterisk.git Logger: Reset defaults before processing config. Reset options to default values before reloading config. This ensures that if a setting is removed or commented out of the configuration file it is unset on reload. ASTERISK-25112 #close Reported by: Corey Farrell Change-Id: Id24bb1fb0885c2c14cf8bd6f69a0c2ee7cd6c5bd --- diff --git a/main/logger.c b/main/logger.c index cebb14529a..9f551af38b 100644 --- a/main/logger.c +++ b/main/logger.c @@ -376,16 +376,25 @@ static int init_logger_chain(int locked, const char *altconf) const char *s; struct ast_flags config_flags = { 0 }; - display_callids = 1; - if (!(cfg = ast_config_load2(S_OR(altconf, "logger.conf"), "logger", config_flags)) || cfg == CONFIG_STATUS_FILEINVALID) { cfg = NULL; } - /* delete our list of log channels */ if (!locked) { AST_RWLIST_WRLOCK(&logchannels); } + + /* Set defaults */ + hostname[0] = '\0'; + display_callids = 1; + memset(&logfiles, 0, sizeof(logfiles)); + logfiles.queue_log = 1; + ast_copy_string(dateformat, "%b %e %T", sizeof(dateformat)); + ast_copy_string(queue_log_name, QUEUELOG, sizeof(queue_log_name)); + exec_after_rotate[0] = '\0'; + rotatestrategy = SEQUENTIAL; + + /* delete our list of log channels */ while ((chan = AST_RWLIST_REMOVE_HEAD(&logchannels, list))) { ast_free(chan); } @@ -425,17 +434,14 @@ static int init_logger_chain(int locked, const char *altconf) ast_copy_string(hostname, "unknown", sizeof(hostname)); fprintf(stderr, "What box has no hostname???\n"); } - } else - hostname[0] = '\0'; - } else - hostname[0] = '\0'; + } + } if ((s = ast_variable_retrieve(cfg, "general", "display_callids"))) { display_callids = ast_true(s); } - if ((s = ast_variable_retrieve(cfg, "general", "dateformat"))) + if ((s = ast_variable_retrieve(cfg, "general", "dateformat"))) { ast_copy_string(dateformat, s, sizeof(dateformat)); - else - ast_copy_string(dateformat, "%b %e %T", sizeof(dateformat)); + } if ((s = ast_variable_retrieve(cfg, "general", "queue_log"))) { logfiles.queue_log = ast_true(s); }