diff options
author | Corey Farrell <git@cfware.com> | 2015-05-20 21:53:46 -0400 |
---|---|---|
committer | Corey Farrell <git@cfware.com> | 2015-05-20 21:22:39 -0500 |
commit | d067847695ae4527a706e516b5eea56a8ba7cdbf (patch) | |
tree | 50ffeada4828b6cde42636707e59fb8d9c26e8d0 /main/logger.c | |
parent | 3f5a86037dc3b02933c8518e12827dba4852c155 (diff) |
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
Diffstat (limited to 'main/logger.c')
-rw-r--r-- | main/logger.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/main/logger.c b/main/logger.c index 41f26e823..bdcd6c4f5 100644 --- a/main/logger.c +++ b/main/logger.c @@ -375,16 +375,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); } @@ -424,17 +433,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); } |