}
/* \brief Read config, setup channels.
- * \param locked The logchannels list is locked and this is a reload
* \param altconf Alternate configuration file to read.
*
+ * \pre logchannels list is write locked
+ *
* \retval 0 Success
* \retval -1 No config found or Failed
*/
-static int init_logger_chain(int locked, const char *altconf)
+static int init_logger_chain(const char *altconf)
{
struct logchannel *chan;
struct ast_config *cfg;
cfg = NULL;
}
- if (!locked) {
- AST_RWLIST_WRLOCK(&logchannels);
- }
-
/* Set defaults */
hostname[0] = '\0';
display_callids = 1;
ast_free(chan);
}
global_logmask = 0;
- if (!locked) {
- AST_RWLIST_UNLOCK(&logchannels);
- }
errno = 0;
/* close syslog */
chan->logmask = __LOG_WARNING | __LOG_NOTICE | __LOG_ERROR;
memcpy(&chan->formatter, &logformatter_default, sizeof(chan->formatter));
- if (!locked) {
- AST_RWLIST_WRLOCK(&logchannels);
- }
AST_RWLIST_INSERT_HEAD(&logchannels, chan, list);
global_logmask |= chan->logmask;
- if (!locked) {
- AST_RWLIST_UNLOCK(&logchannels);
- }
return -1;
}
}
}
- if (!locked) {
- AST_RWLIST_WRLOCK(&logchannels);
- }
var = ast_variable_browse(cfg, "logfiles");
for (; var; var = var->next) {
if (!(chan = make_logchannel(var->name, var->value, var->lineno, 0))) {
qlog = NULL;
}
- if (!locked) {
- AST_RWLIST_UNLOCK(&logchannels);
- }
-
ast_config_destroy(cfg);
return 0;
filesize_reload_needed = 0;
- init_logger_chain(1 /* locked */, altconf);
+ init_logger_chain(altconf);
ast_unload_realtime("queue_log");
if (logfiles.queue_log) {
}
}
- init_logger_chain(1 /* locked */, NULL);
+ init_logger_chain(NULL);
AST_RWLIST_UNLOCK(&logchannels);
ast_mkdir(ast_config_AST_LOG_DIR, 0777);
/* create log channels */
- res = init_logger_chain(0 /* locked */, NULL);
+ AST_RWLIST_WRLOCK(&logchannels);
+ res = init_logger_chain(NULL);
+ AST_RWLIST_UNLOCK(&logchannels);
ast_verb_update();
logger_initialized = 1;
if (res) {