Author: rmudgett Date: Mon Dec 22 13:38:58 2014 New Revision: 430009 URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=430009 Log: queue_log: Post QUEUESTART entry when Asterisk fully boots.
The QUEUESTART log entry has historically acted like a fully booted event for the queue_log file. When the QUEUESTART entry was posted to the log was broken by the change made by ASTERISK-15863. * Made post the QUEUESTART queue_log entry when Asterisk fully boots. This restores the intent of that log entry and happens after realtime has had a chance to load. AST-1444 #close Reported by: Denis Martinez Review: https://reviewboard.asterisk.org/r/4282/ Modified: branches/11/include/asterisk/_private.h branches/11/main/asterisk.c branches/11/main/logger.c Modified: branches/11/include/asterisk/_private.h URL: http://svnview.digium.com/svn/asterisk/branches/11/include/asterisk/_private.h?view=diff&rev=430009&r1=430008&r2=430009 ============================================================================== --- branches/11/include/asterisk/_private.h (original) +++ branches/11/include/asterisk/_private.h Mon Dec 22 13:38:58 2014 @@ -19,6 +19,7 @@ int load_pbx(void); /*!< Provided by pbx.c */ int init_logger(void); /*!< Provided by logger.c */ void close_logger(void); /*!< Provided by logger.c */ +void logger_queue_start(void); /*!< Provided by logger.c */ void clean_time_zones(void); /*!< Provided by localtime.c */ int init_framer(void); /*!< Provided by frame.c */ int ast_term_init(void); /*!< Provided by term.c */ Modified: branches/11/main/asterisk.c URL: http://svnview.digium.com/svn/asterisk/branches/11/main/asterisk.c?view=diff&rev=430009&r1=430008&r2=430009 ============================================================================== --- branches/11/main/asterisk.c (original) +++ branches/11/main/asterisk.c Mon Dec 22 13:38:58 2014 @@ -4380,6 +4380,8 @@ run_startup_commands(); + logger_queue_start(); + if (ast_opt_console) { /* Console stuff now... */ /* Register our quit function */ Modified: branches/11/main/logger.c URL: http://svnview.digium.com/svn/asterisk/branches/11/main/logger.c?view=diff&rev=430009&r1=430008&r2=430009 ============================================================================== --- branches/11/main/logger.c (original) +++ branches/11/main/logger.c Mon Dec 22 13:38:58 2014 @@ -235,8 +235,6 @@ AST_THREADSTORAGE(log_buf); #define LOG_BUF_INIT_SIZE 256 -static void logger_queue_init(void); - static void make_components(struct logchannel *chan) { char *w; @@ -548,20 +546,8 @@ return; } if (!queuelog_init) { - AST_RWLIST_WRLOCK(&logchannels); - if (!queuelog_init) { - /* - * We have delayed initializing the queue logging system so - * preloaded realtime modules can get up. We must initialize - * now since someone is trying to log something. - */ - logger_queue_init(); - queuelog_init = 1; - AST_RWLIST_UNLOCK(&logchannels); - ast_queue_log("NONE", "NONE", "NONE", "QUEUESTART", "%s", ""); - } else { - AST_RWLIST_UNLOCK(&logchannels); - } + /* We must initialize now since someone is trying to log something. */ + logger_queue_start(); } if (ast_check_realtime("queue_log")) { @@ -1265,6 +1251,30 @@ } } +/*! + * \brief Start the ast_queue_log() logger. + * + * \note Called when the system is fully booted after startup + * so preloaded realtime modules can get up. + * + * \return Nothing + */ +void logger_queue_start(void) +{ + /* Must not be called before the logger is initialized. */ + ast_assert(logger_initialized); + + AST_RWLIST_WRLOCK(&logchannels); + if (!queuelog_init) { + logger_queue_init(); + queuelog_init = 1; + AST_RWLIST_UNLOCK(&logchannels); + ast_queue_log("NONE", "NONE", "NONE", "QUEUESTART", "%s", ""); + } else { + AST_RWLIST_UNLOCK(&logchannels); + } +} + int init_logger(void) { /* auto rotate if sig SIGXFSZ comes a-knockin */ -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- svn-commits mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/svn-commits
