Merged revisions 156164 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Wed, 12 Nov 2008 17:38:20 +0000 (17:38 +0000)
committerRussell Bryant <russell@russellbryant.com>
Wed, 12 Nov 2008 17:38:20 +0000 (17:38 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r156164 | russell | 2008-11-12 11:29:52 -0600 (Wed, 12 Nov 2008) | 7 lines

Move the sanity check that makes sure "always fork" is not set along with the
console option to be after the code that reads options from asterisk.conf.
This resolves a situation where Asterisk can start taking up 100% when
misconfigured.
(Thanks to Bryce Porter (x86 on IRC) for letting me log in to his system to
 figure out what was causing the 100% CPU problem.)

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@156166 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/asterisk.c

index 79e5e7b..00b8df1 100644 (file)
@@ -3002,11 +3002,6 @@ int main(int argc, char *argv[])
        if (ast_opt_console && !option_verbose) 
                ast_verbose("[ Booting...\n");
 
-       if (ast_opt_always_fork && (ast_opt_remote || ast_opt_console)) {
-               ast_log(LOG_WARNING, "'alwaysfork' is not compatible with console or remote console mode; ignored\n");
-               ast_clear_flag(&ast_options, AST_OPT_FLAG_ALWAYS_FORK);
-       }
-
        /* For remote connections, change the name of the remote connection.
         * We do this for the benefit of init scripts (which need to know if/when
         * the main asterisk process has died yet). */
@@ -3017,8 +3012,10 @@ int main(int argc, char *argv[])
                }
        }
 
-       if (ast_opt_console && !option_verbose) 
+       if (ast_opt_console && !option_verbose) {
                ast_verbose("[ Reading Master Configuration ]\n");
+       }
+
        ast_readconfig();
 
        if (ast_opt_remote && remotesock != NULL)
@@ -3027,6 +3024,11 @@ int main(int argc, char *argv[])
        if (!ast_language_is_prefix && !ast_opt_remote)
                ast_log(LOG_WARNING, "The 'languageprefix' option in asterisk.conf is deprecated; in a future release it will be removed, and your sound files will need to be organized in the 'new style' language layout.\n");
 
+       if (ast_opt_always_fork && (ast_opt_remote || ast_opt_console)) {
+               ast_log(LOG_WARNING, "'alwaysfork' is not compatible with console or remote console mode; ignored\n");
+               ast_clear_flag(&ast_options, AST_OPT_FLAG_ALWAYS_FORK);
+       }
+
        if (ast_opt_dump_core) {
                struct rlimit l;
                memset(&l, 0, sizeof(l));