summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorJenkins2 <jenkins2@gerrit.asterisk.org>2018-01-29 10:49:58 -0600
committerGerrit Code Review <gerrit2@gerrit.digium.api>2018-01-29 10:49:58 -0600
commit1e44d50893add67cf117f9b0ca8a1c20c3daea34 (patch)
treea84e1cfefbfe7a5b3e37db73c3d2e7e9c12f76d0 /main
parent7c7736554954a32d9c00f753a8bc72e0aa23a660 (diff)
parent39fcecad59cb705545a59d9a23b528781fbbfb22 (diff)
Merge "core: Tweak startup order."
Diffstat (limited to 'main')
-rw-r--r--main/asterisk.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/main/asterisk.c b/main/asterisk.c
index 4c7abd68e..39c97d2c1 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -4546,20 +4546,7 @@ static void asterisk_daemon(int isroot, const char *runuser, const char *rungrou
check_init(ast_device_state_engine_init(), "Device State Engine");
check_init(ast_presence_state_engine_init(), "Presence State Engine");
check_init(ast_dns_system_resolver_init(), "Default DNS resolver");
- check_init(load_modules(1), "Module Preload");
- check_init(ast_features_init(), "Call Features");
- check_init(dnsmgr_init(), "DNS manager");
check_init(ast_security_stasis_init(), "Security Stasis Topic and Events");
- check_init(ast_named_acl_init(), "Named ACL system");
-
- ast_http_init(); /* Start the HTTP server, if needed */
-
- check_init(ast_indications_init(), "Indication Tone Handling");
- check_init(ast_cdr_engine_init(), "CDR Engine");
-
- ast_dsp_init();
- ast_udptl_init();
-
check_init(ast_image_init(), "Image");
check_init(ast_file_init(), "Generic File Format Support");
check_init(load_pbx(), "load_pbx");
@@ -4570,10 +4557,27 @@ static void asterisk_daemon(int isroot, const char *runuser, const char *rungrou
check_init(load_pbx_app(), "PBX Application Support");
check_init(load_pbx_hangup_handler(), "PBX Hangup Handler Support");
check_init(ast_local_init(), "Local Proxy Channel Driver");
+
+ /* We should avoid most config loads before this point as they can't use realtime. */
+ check_init(load_modules(1), "Module Preload");
+
+ /* Initialize core modules that have config files. These should be converted to
+ * built-in modules with load priority after realtime, that way users will not
+ * need to 'preload' realtime modules. */
+ check_init(ast_features_init(), "Call Features");
+ check_init(dnsmgr_init(), "DNS manager");
+ check_init(ast_named_acl_init(), "Named ACL system");
+ ast_http_init();
+ check_init(ast_indications_init(), "Indication Tone Handling");
+ check_init(ast_cdr_engine_init(), "CDR Engine");
+ ast_dsp_init();
+ ast_udptl_init();
check_init(ast_cel_engine_init(), "CEL Engine");
check_init(init_manager(), "Asterisk Manager Interface");
check_init(ast_enum_init(), "ENUM Support");
check_init(ast_cc_init(), "Call Completion Supplementary Services");
+
+ /* Load remaining modules */
check_init(load_modules(0), "Module");
/*