From b4e18d5660fcc13b97cd4682ff48e33aa9d15d83 Mon Sep 17 00:00:00 2001 From: Tilghman Lesher <tilghman@meg.abyt.es> Date: Tue, 20 Jul 2010 19:35:02 +0000 Subject: [PATCH] Add load priority order, such that preload becomes unnecessary in most cases git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@278132 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- addons/chan_mobile.c | 3 ++- addons/res_config_mysql.c | 3 ++- apps/app_confbridge.c | 6 ++++- apps/app_meetme.c | 3 ++- apps/app_queue.c | 3 ++- cdr/cdr_adaptive_odbc.c | 3 ++- cdr/cdr_csv.c | 3 ++- cdr/cdr_custom.c | 3 ++- cdr/cdr_manager.c | 3 ++- cdr/cdr_odbc.c | 3 ++- cdr/cdr_pgsql.c | 3 ++- cdr/cdr_radius.c | 6 ++++- cdr/cdr_sqlite.c | 6 ++++- cdr/cdr_sqlite3_custom.c | 3 ++- cdr/cdr_syslog.c | 3 ++- cdr/cdr_tds.c | 3 ++- cel/cel_adaptive_odbc.c | 3 ++- cel/cel_custom.c | 3 ++- cel/cel_manager.c | 3 ++- cel/cel_pgsql.c | 3 ++- cel/cel_radius.c | 6 ++++- cel/cel_sqlite3_custom.c | 3 ++- cel/cel_tds.c | 3 ++- channels/chan_agent.c | 3 ++- channels/chan_alsa.c | 6 ++++- channels/chan_bridge.c | 6 ++++- channels/chan_console.c | 3 ++- channels/chan_dahdi.c | 3 ++- channels/chan_gtalk.c | 3 ++- channels/chan_h323.c | 3 ++- channels/chan_iax2.c | 3 ++- channels/chan_jingle.c | 3 ++- channels/chan_local.c | 6 ++++- channels/chan_mgcp.c | 3 ++- channels/chan_misdn.c | 3 ++- channels/chan_multicast_rtp.c | 6 ++++- channels/chan_sip.c | 3 ++- channels/chan_skinny.c | 3 ++- formats/format_g719.c | 8 ++---- formats/format_g723.c | 8 ++---- formats/format_g726.c | 8 ++---- formats/format_g729.c | 8 ++---- formats/format_gsm.c | 8 ++---- formats/format_h263.c | 8 ++---- formats/format_h264.c | 8 ++---- formats/format_ilbc.c | 8 ++---- formats/format_jpeg.c | 8 ++---- formats/format_ogg_vorbis.c | 6 +---- formats/format_pcm.c | 8 ++---- formats/format_siren14.c | 8 ++---- formats/format_siren7.c | 8 ++---- formats/format_sln.c | 8 ++---- formats/format_sln16.c | 8 ++---- formats/format_vox.c | 8 ++---- formats/format_wav.c | 8 ++---- formats/format_wav_gsm.c | 8 ++---- funcs/func_curl.c | 6 ++++- funcs/func_devstate.c | 6 ++++- include/asterisk/config.h | 2 ++ include/asterisk/module.h | 25 +++++++++++++++--- main/asterisk.c | 2 +- main/config.c | 4 +-- main/loader.c | 6 ++--- pbx/pbx_lua.c | 6 ++--- res/res_adsi.c | 3 ++- res/res_agi.c | 3 ++- res/res_calendar.c | 3 ++- res/res_calendar_caldav.c | 3 ++- res/res_calendar_ews.c | 3 ++- res/res_calendar_exchange.c | 3 ++- res/res_calendar_icalendar.c | 3 ++- res/res_config_curl.c | 48 ++++++++++++++++++++++++++++++++++- res/res_config_ldap.c | 3 ++- res/res_config_odbc.c | 3 ++- res/res_config_pgsql.c | 5 ++-- res/res_config_sqlite.c | 3 ++- res/res_crypto.c | 3 ++- res/res_curl.c | 8 ++++-- res/res_fax.c | 3 ++- res/res_jabber.c | 3 ++- res/res_monitor.c | 3 ++- res/res_musiconhold.c | 3 ++- res/res_odbc.c | 3 ++- res/res_rtp_asterisk.c | 3 ++- res/res_rtp_multicast.c | 6 ++++- res/res_smdi.c | 3 ++- res/res_speech.c | 3 ++- res/res_srtp.c | 3 ++- res/res_timing_dahdi.c | 2 +- res/res_timing_kqueue.c | 2 +- res/res_timing_pthread.c | 2 +- res/res_timing_timerfd.c | 2 +- 92 files changed, 282 insertions(+), 190 deletions(-) diff --git a/addons/chan_mobile.c b/addons/chan_mobile.c index 43973f4609..1bceed1056 100644 --- a/addons/chan_mobile.c +++ b/addons/chan_mobile.c @@ -4584,7 +4584,8 @@ e_cleanup: return AST_MODULE_LOAD_FAILURE; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Bluetooth Mobile Device Channel Driver", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Bluetooth Mobile Device Channel Driver", .load = load_module, .unload = unload_module, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, ); diff --git a/addons/res_config_mysql.c b/addons/res_config_mysql.c index fc449d26be..e770452fd4 100644 --- a/addons/res_config_mysql.c +++ b/addons/res_config_mysql.c @@ -1773,9 +1773,10 @@ static char *handle_cli_realtime_mysql_status(struct ast_cli_entry *e, int cmd, return CLI_SUCCESS; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "MySQL RealTime Configuration Driver", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "MySQL RealTime Configuration Driver", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_REALTIME_DRIVER, ); diff --git a/apps/app_confbridge.c b/apps/app_confbridge.c index 88fc81a2d1..daa54aa82d 100644 --- a/apps/app_confbridge.c +++ b/apps/app_confbridge.c @@ -819,4 +819,8 @@ static int load_module(void) return AST_MODULE_LOAD_SUCCESS; } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Conference Bridge Application"); +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Conference Bridge Application", + .load = load_module, + .unload = unload_module, + .load_pri = AST_MODPRI_DEVSTATE_PROVIDER, +); diff --git a/apps/app_meetme.c b/apps/app_meetme.c index 5ef9718f19..e40a91cbb0 100644 --- a/apps/app_meetme.c +++ b/apps/app_meetme.c @@ -7068,9 +7068,10 @@ static int reload(void) return load_config(1); } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "MeetMe conference bridge", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "MeetMe conference bridge", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_DEVSTATE_PROVIDER, ); diff --git a/apps/app_queue.c b/apps/app_queue.c index c1e390660d..15eebdb5de 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -8188,9 +8188,10 @@ static int reload(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "True Call Queueing", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "True Call Queueing", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_DEVSTATE_CONSUMER, ); diff --git a/cdr/cdr_adaptive_odbc.c b/cdr/cdr_adaptive_odbc.c index 50577db7ef..857ad726a5 100644 --- a/cdr/cdr_adaptive_odbc.c +++ b/cdr/cdr_adaptive_odbc.c @@ -754,9 +754,10 @@ static int reload(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Adaptive ODBC CDR backend", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Adaptive ODBC CDR backend", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cdr/cdr_csv.c b/cdr/cdr_csv.c index a504b6b09c..60b9658808 100644 --- a/cdr/cdr_csv.c +++ b/cdr/cdr_csv.c @@ -357,8 +357,9 @@ static int reload(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Comma Separated Values CDR Backend", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Comma Separated Values CDR Backend", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cdr/cdr_custom.c b/cdr/cdr_custom.c index 684c12b462..c834814e81 100644 --- a/cdr/cdr_custom.c +++ b/cdr/cdr_custom.c @@ -211,9 +211,10 @@ static int reload(void) return AST_MODULE_LOAD_SUCCESS; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Customizable Comma Separated Values CDR Backend", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Customizable Comma Separated Values CDR Backend", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cdr/cdr_manager.c b/cdr/cdr_manager.c index e9f728476d..4cc8183656 100644 --- a/cdr/cdr_manager.c +++ b/cdr/cdr_manager.c @@ -218,8 +218,9 @@ static int reload(void) return load_config(1); } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk Manager Interface CDR Backend", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk Manager Interface CDR Backend", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cdr/cdr_odbc.c b/cdr/cdr_odbc.c index fde134fa8e..e8a7ce828e 100644 --- a/cdr/cdr_odbc.c +++ b/cdr/cdr_odbc.c @@ -279,8 +279,9 @@ static int reload(void) return odbc_load_module(1); } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "ODBC CDR Backend", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "ODBC CDR Backend", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cdr/cdr_pgsql.c b/cdr/cdr_pgsql.c index b248a1e754..83c7d2e821 100644 --- a/cdr/cdr_pgsql.c +++ b/cdr/cdr_pgsql.c @@ -587,8 +587,9 @@ static int reload(void) return config_module(1); } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "PostgreSQL CDR Backend", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PostgreSQL CDR Backend", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cdr/cdr_radius.c b/cdr/cdr_radius.c index 8b611c93f5..c0e2c6d2f5 100644 --- a/cdr/cdr_radius.c +++ b/cdr/cdr_radius.c @@ -263,4 +263,8 @@ static int load_module(void) return AST_MODULE_LOAD_SUCCESS; } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "RADIUS CDR Backend"); +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "RADIUS CDR Backend", + .load = load_module, + .unload = unload_module, + .load_pri = AST_MODPRI_CDR_DRIVER, + ); diff --git a/cdr/cdr_sqlite.c b/cdr/cdr_sqlite.c index d871e8a8a8..a46902c9cb 100644 --- a/cdr/cdr_sqlite.c +++ b/cdr/cdr_sqlite.c @@ -238,4 +238,8 @@ err: return AST_MODULE_LOAD_DECLINE; } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "SQLite CDR Backend"); +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "SQLite CDR Backend", + .load = load_module, + .unload = unload_module, + .load_pri = AST_MODPRI_CDR_DRIVER, +); diff --git a/cdr/cdr_sqlite3_custom.c b/cdr/cdr_sqlite3_custom.c index 88f5776632..c2dae7a7bc 100644 --- a/cdr/cdr_sqlite3_custom.c +++ b/cdr/cdr_sqlite3_custom.c @@ -354,8 +354,9 @@ static int reload(void) return res; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "SQLite3 Custom CDR Module", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "SQLite3 Custom CDR Module", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cdr/cdr_syslog.c b/cdr/cdr_syslog.c index cc132cbf6c..6d9a6df3bc 100644 --- a/cdr/cdr_syslog.c +++ b/cdr/cdr_syslog.c @@ -271,8 +271,9 @@ static int reload(void) return res ? AST_MODULE_LOAD_DECLINE : AST_MODULE_LOAD_SUCCESS; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Customizable syslog CDR Backend", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Customizable syslog CDR Backend", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cdr/cdr_tds.c b/cdr/cdr_tds.c index ab0f0659cd..fca815fd83 100644 --- a/cdr/cdr_tds.c +++ b/cdr/cdr_tds.c @@ -628,8 +628,9 @@ static int unload_module(void) return tds_unload_module(); } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "FreeTDS CDR Backend", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "FreeTDS CDR Backend", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cel/cel_adaptive_odbc.c b/cel/cel_adaptive_odbc.c index cb1103df7d..f5bd4a3c83 100644 --- a/cel/cel_adaptive_odbc.c +++ b/cel/cel_adaptive_odbc.c @@ -783,9 +783,10 @@ static int reload(void) return AST_MODULE_LOAD_SUCCESS; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Adaptive ODBC CEL backend", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Adaptive ODBC CEL backend", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cel/cel_custom.c b/cel/cel_custom.c index 37a7419353..9f7d589b49 100644 --- a/cel/cel_custom.c +++ b/cel/cel_custom.c @@ -208,9 +208,10 @@ static int reload(void) return AST_MODULE_LOAD_SUCCESS; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Customizable Comma Separated Values CEL Backend", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Customizable Comma Separated Values CEL Backend", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cel/cel_manager.c b/cel/cel_manager.c index a57c31ebe2..fcf20766f9 100644 --- a/cel/cel_manager.c +++ b/cel/cel_manager.c @@ -168,8 +168,9 @@ static int reload(void) return load_config(1); } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk Manager Interface CEL Backend", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk Manager Interface CEL Backend", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cel/cel_pgsql.c b/cel/cel_pgsql.c index e4bdab1d76..32ec6302cd 100644 --- a/cel/cel_pgsql.c +++ b/cel/cel_pgsql.c @@ -561,8 +561,9 @@ static int reload(void) return my_load_module(1); } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "PostgreSQL CEL Backend", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PostgreSQL CEL Backend", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cel/cel_radius.c b/cel/cel_radius.c index c44044f6e6..0e20571d5e 100644 --- a/cel/cel_radius.c +++ b/cel/cel_radius.c @@ -251,4 +251,8 @@ static int load_module(void) } } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "RADIUS CEL Backend"); +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "RADIUS CEL Backend", + .load = load_module, + .unload = unload_module, + .load_pri = AST_MODPRI_CDR_DRIVER, +); diff --git a/cel/cel_sqlite3_custom.c b/cel/cel_sqlite3_custom.c index 94765d3e46..18e2a9f1a3 100644 --- a/cel/cel_sqlite3_custom.c +++ b/cel/cel_sqlite3_custom.c @@ -357,8 +357,9 @@ static int reload(void) return res; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "SQLite3 Custom CEL Module", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "SQLite3 Custom CEL Module", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/cel/cel_tds.c b/cel/cel_tds.c index 631c3cb960..37992bf5e8 100644 --- a/cel/cel_tds.c +++ b/cel/cel_tds.c @@ -576,8 +576,9 @@ static int unload_module(void) return tds_unload_module(); } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "FreeTDS CEL Backend", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "FreeTDS CEL Backend", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CDR_DRIVER, ); diff --git a/channels/chan_agent.c b/channels/chan_agent.c index c12900582a..b8e142d046 100644 --- a/channels/chan_agent.c +++ b/channels/chan_agent.c @@ -2479,8 +2479,9 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Agent Proxy Channel", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Agent Proxy Channel", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, ); diff --git a/channels/chan_alsa.c b/channels/chan_alsa.c index 3f8d26d5a6..120987ae4e 100644 --- a/channels/chan_alsa.c +++ b/channels/chan_alsa.c @@ -1009,4 +1009,8 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "ALSA Console Channel Driver"); +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "ALSA Console Channel Driver", + .load = load_module, + .unload = unload_module, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, + ); diff --git a/channels/chan_bridge.c b/channels/chan_bridge.c index db26466548..8218bdceb9 100644 --- a/channels/chan_bridge.c +++ b/channels/chan_bridge.c @@ -242,4 +242,8 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Bridge Interaction Channel"); +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Bridge Interaction Channel", + .load = load_module, + .unload = unload_module, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, +); diff --git a/channels/chan_console.c b/channels/chan_console.c index 99b673b6c7..13f1bba8f4 100644 --- a/channels/chan_console.c +++ b/channels/chan_console.c @@ -1521,8 +1521,9 @@ static int reload(void) return load_config(1); } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Console Channel Driver", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Console Channel Driver", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, ); diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index 333da603c5..be237eaf1f 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -17858,8 +17858,9 @@ static int reload(void) * AST_MODULE_INFO(, , "DAHDI Telephony" */ -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, tdesc, +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, tdesc, .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, ); diff --git a/channels/chan_gtalk.c b/channels/chan_gtalk.c index 4101d52f96..47eed7e082 100644 --- a/channels/chan_gtalk.c +++ b/channels/chan_gtalk.c @@ -2154,8 +2154,9 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Gtalk Channel Driver", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Gtalk Channel Driver", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, ); diff --git a/channels/chan_h323.c b/channels/chan_h323.c index 2907b3fcdc..2362d9a496 100644 --- a/channels/chan_h323.c +++ b/channels/chan_h323.c @@ -3433,8 +3433,9 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "The NuFone Network's OpenH323 Channel Driver", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "The NuFone Network's OpenH323 Channel Driver", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, ); diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 92f070be2b..ad7033bccb 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -14534,8 +14534,9 @@ static int load_module(void) return AST_MODULE_LOAD_SUCCESS; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Inter Asterisk eXchange (Ver 2)", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Inter Asterisk eXchange (Ver 2)", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, ); diff --git a/channels/chan_jingle.c b/channels/chan_jingle.c index bdf01203b6..25b4d7e459 100644 --- a/channels/chan_jingle.c +++ b/channels/chan_jingle.c @@ -1966,8 +1966,9 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Jingle Channel Driver", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Jingle Channel Driver", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, ); diff --git a/channels/chan_local.c b/channels/chan_local.c index 20db5d04ae..95adfcab7c 100644 --- a/channels/chan_local.c +++ b/channels/chan_local.c @@ -1031,4 +1031,8 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Local Proxy Channel (Note: used internally by other modules)"); +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Local Proxy Channel (Note: used internally by other modules)", + .load = load_module, + .unload = unload_module, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, + ); diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c index 2f4aa4aeab..485b39aade 100644 --- a/channels/chan_mgcp.c +++ b/channels/chan_mgcp.c @@ -4910,8 +4910,9 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Media Gateway Control Protocol (MGCP)", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Media Gateway Control Protocol (MGCP)", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, ); diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index 302c8541c3..8b31ed23ab 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -12372,8 +12372,9 @@ static void chan_misdn_log(int level, int port, char *tmpl, ...) } } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Channel driver for mISDN Support (BRI/PRI)", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Channel driver for mISDN Support (BRI/PRI)", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, ); diff --git a/channels/chan_multicast_rtp.c b/channels/chan_multicast_rtp.c index f385d4467d..e3414d2f3b 100644 --- a/channels/chan_multicast_rtp.c +++ b/channels/chan_multicast_rtp.c @@ -184,4 +184,8 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Multicast RTP Paging Channel"); +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Multicast RTP Paging Channel", + .load = load_module, + .unload = unload_module, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, +); diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 7970cbc339..e2db51a3b0 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -28505,8 +28505,9 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Session Initiation Protocol (SIP)", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Session Initiation Protocol (SIP)", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, ); diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index 6d4968a7b7..4edbc4ab97 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -7488,8 +7488,9 @@ static int reload(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Skinny Client Control Protocol (Skinny)", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Skinny Client Control Protocol (Skinny)", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DRIVER, ); diff --git a/formats/format_g719.c b/formats/format_g719.c index 779bea996a..6a981d1241 100644 --- a/formats/format_g719.c +++ b/formats/format_g719.c @@ -133,11 +133,7 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(g719_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER,"ITU G.719", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "ITU G.719"); diff --git a/formats/format_g723.c b/formats/format_g723.c index 46f22f1eed..3d48f26ec3 100644 --- a/formats/format_g723.c +++ b/formats/format_g723.c @@ -147,10 +147,6 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(g723_1_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "G.723.1 Simple Timestamp File Format", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "G.723.1 Simple Timestamp File Format"); diff --git a/formats/format_g726.c b/formats/format_g726.c index d519fa46d6..53e344cdf1 100644 --- a/formats/format_g726.c +++ b/formats/format_g726.c @@ -256,10 +256,6 @@ static int unload_module(void) ast_log(LOG_WARNING, "Failed to unregister format %s.\n", f[i].name); } return(0); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw G.726 (16/24/32/40kbps) data", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw G.726 (16/24/32/40kbps) data"); diff --git a/formats/format_g729.c b/formats/format_g729.c index 19be7a418f..439f8a69e1 100644 --- a/formats/format_g729.c +++ b/formats/format_g729.c @@ -143,10 +143,6 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(g729_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw G729 data", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw G729 data"); diff --git a/formats/format_gsm.c b/formats/format_gsm.c index f1ba9fb761..06d1d94d17 100644 --- a/formats/format_gsm.c +++ b/formats/format_gsm.c @@ -167,10 +167,6 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(gsm_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw GSM data", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw GSM data"); diff --git a/formats/format_h263.c b/formats/format_h263.c index 02b7f792c8..6e95c7ad4a 100644 --- a/formats/format_h263.c +++ b/formats/format_h263.c @@ -181,10 +181,6 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(h263_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw H.263 data", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw H.263 data"); diff --git a/formats/format_h264.c b/formats/format_h264.c index 1573475cec..0a5ba94213 100644 --- a/formats/format_h264.c +++ b/formats/format_h264.c @@ -170,10 +170,6 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(h264_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw H.264 data", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw H.264 data"); diff --git a/formats/format_ilbc.c b/formats/format_ilbc.c index d01c74fc45..d2fa8a1c01 100644 --- a/formats/format_ilbc.c +++ b/formats/format_ilbc.c @@ -141,10 +141,6 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(ilbc_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw iLBC data", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw iLBC data"); diff --git a/formats/format_jpeg.c b/formats/format_jpeg.c index 54a2422129..169ffbb322 100644 --- a/formats/format_jpeg.c +++ b/formats/format_jpeg.c @@ -110,10 +110,6 @@ static int unload_module(void) ast_image_unregister(&jpeg_format); return 0; -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "jpeg (joint picture experts group) image format", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "jpeg (joint picture experts group) image format"); diff --git a/formats/format_ogg_vorbis.c b/formats/format_ogg_vorbis.c index 928b001049..d45511a2e9 100644 --- a/formats/format_ogg_vorbis.c +++ b/formats/format_ogg_vorbis.c @@ -556,8 +556,4 @@ static int unload_module(void) return ast_format_unregister(vorbis_f.name); } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "OGG/Vorbis audio", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "OGG/Vorbis audio"); diff --git a/formats/format_pcm.c b/formats/format_pcm.c index b272b26635..2b0db56e27 100644 --- a/formats/format_pcm.c +++ b/formats/format_pcm.c @@ -492,10 +492,6 @@ static int unload_module(void) || ast_format_unregister(alaw_f.name) || ast_format_unregister(au_f.name) || ast_format_unregister(g722_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw/Sun uLaw/ALaw 8KHz (PCM,PCMA,AU), G.722 16Khz", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw/Sun uLaw/ALaw 8KHz (PCM,PCMA,AU), G.722 16Khz"); diff --git a/formats/format_siren14.c b/formats/format_siren14.c index 215450f785..498317c82f 100644 --- a/formats/format_siren14.c +++ b/formats/format_siren14.c @@ -133,10 +133,6 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(siren14_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "ITU G.722.1 Annex C (Siren14, licensed from Polycom)", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "ITU G.722.1 Annex C (Siren14, licensed from Polycom)"); diff --git a/formats/format_siren7.c b/formats/format_siren7.c index a2871fcf81..6017207cf8 100644 --- a/formats/format_siren7.c +++ b/formats/format_siren7.c @@ -133,10 +133,6 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(siren7_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "ITU G.722.1 (Siren7, licensed from Polycom)", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "ITU G.722.1 (Siren7, licensed from Polycom)"); diff --git a/formats/format_sln.c b/formats/format_sln.c index 11b150d5bf..538f77fe79 100644 --- a/formats/format_sln.c +++ b/formats/format_sln.c @@ -125,10 +125,6 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(slin_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw Signed Linear Audio support (SLN)", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw Signed Linear Audio support (SLN)"); diff --git a/formats/format_sln16.c b/formats/format_sln16.c index 3f9a73678b..5e73fc9d89 100644 --- a/formats/format_sln16.c +++ b/formats/format_sln16.c @@ -133,10 +133,6 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(slin_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw Signed Linear 16KHz Audio support (SLN16)", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw Signed Linear 16KHz Audio support (SLN16)"); diff --git a/formats/format_vox.c b/formats/format_vox.c index db9e64631e..1501375bb6 100644 --- a/formats/format_vox.c +++ b/formats/format_vox.c @@ -130,10 +130,6 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(vox_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Dialogic VOX (ADPCM) File Format", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Dialogic VOX (ADPCM) File Format"); diff --git a/formats/format_wav.c b/formats/format_wav.c index 6cd4c54bc6..050df73eba 100644 --- a/formats/format_wav.c +++ b/formats/format_wav.c @@ -493,10 +493,6 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(wav_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Microsoft WAV format (8000Hz Signed Linear)", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Microsoft WAV format (8000Hz Signed Linear)"); diff --git a/formats/format_wav_gsm.c b/formats/format_wav_gsm.c index 0b93b6eb95..106d88cb74 100644 --- a/formats/format_wav_gsm.c +++ b/formats/format_wav_gsm.c @@ -546,10 +546,6 @@ static int load_module(void) static int unload_module(void) { return ast_format_unregister(wav49_f.name); -} +} -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Microsoft WAV format (Proprietary GSM)", - .load = load_module, - .unload = unload_module, - .load_pri = 10, -); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Microsoft WAV format (Proprietary GSM)"); diff --git a/funcs/func_curl.c b/funcs/func_curl.c index e7c5b65ca5..92d0b9729e 100644 --- a/funcs/func_curl.c +++ b/funcs/func_curl.c @@ -638,5 +638,9 @@ static int load_module(void) return res; } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Load external URL"); +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Load external URL", + .load = load_module, + .unload = unload_module, + .load_pri = AST_MODPRI_REALTIME_DEPEND2, + ); diff --git a/funcs/func_devstate.c b/funcs/func_devstate.c index 6e4a674d0d..396657768c 100644 --- a/funcs/func_devstate.c +++ b/funcs/func_devstate.c @@ -349,4 +349,8 @@ static int load_module(void) return res; } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Gets or sets a device state in the dialplan"); +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Gets or sets a device state in the dialplan", + .load = load_module, + .unload = unload_module, + .load_pri = AST_MODPRI_DEVSTATE_PROVIDER, +); diff --git a/include/asterisk/config.h b/include/asterisk/config.h index c5f79730d3..f7279f141e 100644 --- a/include/asterisk/config.h +++ b/include/asterisk/config.h @@ -43,6 +43,8 @@ enum { CONFIG_FLAG_FILEUNCHANGED = (1 << 1), /*! Don't attempt to cache mtime on this config file. */ CONFIG_FLAG_NOCACHE = (1 << 2), + /*! Don't attempt to load from realtime (typically called from a realtime driver dependency) */ + CONFIG_FLAG_NOREALTIME = (1 << 3), }; #define CONFIG_STATUS_FILEMISSING (void *)0 diff --git a/include/asterisk/module.h b/include/asterisk/module.h index 0beed8d2cb..24f66fc369 100644 --- a/include/asterisk/module.h +++ b/include/asterisk/module.h @@ -193,6 +193,20 @@ enum ast_module_flags { AST_MODFLAG_LOAD_ORDER = (1 << 1), }; +enum ast_module_load_priority { + AST_MODPRI_REALTIME_DEPEND = 10, /*!< Dependency for a realtime driver */ + AST_MODPRI_REALTIME_DEPEND2 = 20, /*!< Second level dependency for a realtime driver (func_curl needs res_curl, but is needed by res_config_curl) */ + AST_MODPRI_REALTIME_DRIVER = 30, /*!< A realtime driver, which provides configuration services for other modules */ + AST_MODPRI_CHANNEL_DEPEND = 50, /*!< Channel driver dependency (may depend upon realtime, e.g. MOH) */ + AST_MODPRI_CHANNEL_DRIVER = 60, /*!< Channel drivers (provide devicestate) */ + AST_MODPRI_APP_DEPEND = 70, /*!< Dependency for an application */ + AST_MODPRI_DEVSTATE_PROVIDER = 80, /*!< Applications and other modules that _provide_ devicestate (e.g. meetme) */ + AST_MODPRI_DEVSTATE_PLUGIN = 90, /*!< Plugin for a module that provides devstate (e.g. res_calendar_*) */ + AST_MODPRI_CDR_DRIVER = 100, /*!< CDR or CEL backend */ + AST_MODPRI_DEFAULT = 128, /*!< Modules not otherwise defined (such as most apps) will load here */ + AST_MODPRI_DEVSTATE_CONSUMER = 150, /*!< Certain modules, which consume devstate, need to load after all others (e.g. app_queue) */ +}; + struct ast_module_info { /*! @@ -245,7 +259,7 @@ struct ast_module *ast_module_ref(struct ast_module *); void ast_module_unref(struct ast_module *); #if defined(__cplusplus) || defined(c_plusplus) -#define AST_MODULE_INFO(keystr, flags_to_set, desc, load_func, unload_func, reload_func) \ +#define AST_MODULE_INFO(keystr, flags_to_set, desc, load_func, unload_func, reload_func, load_pri) \ static struct ast_module_info __mod_info = { \ NULL, \ load_func, \ @@ -258,6 +272,7 @@ void ast_module_unref(struct ast_module *); keystr, \ flags_to_set, \ AST_BUILDOPT_SUM, \ + load_pri, \ }; \ static void __attribute__((constructor)) __reg_module(void) \ { \ @@ -270,10 +285,11 @@ void ast_module_unref(struct ast_module *); static const __attribute__((unused)) struct ast_module_info *ast_module_info = &__mod_info #define AST_MODULE_INFO_STANDARD(keystr, desc) \ - AST_MODULE_INFO(keystr, AST_MODFLAG_DEFAULT, desc, \ + AST_MODULE_INFO(keystr, AST_MODFLAG_LOAD_ORDER, desc, \ load_module, \ unload_module, \ - NULL \ + NULL, \ + AST_MODPRI_DEFAULT \ ) #else /* plain C */ @@ -364,9 +380,10 @@ static void __restore_globals(void) static const struct ast_module_info *ast_module_info = &__mod_info #define AST_MODULE_INFO_STANDARD(keystr, desc) \ - AST_MODULE_INFO(keystr, AST_MODFLAG_DEFAULT, desc, \ + AST_MODULE_INFO(keystr, AST_MODFLAG_LOAD_ORDER, desc, \ .load = load_module, \ .unload = unload_module, \ + .load_pri = AST_MODPRI_DEFAULT, \ ) #endif /* plain C */ diff --git a/main/asterisk.c b/main/asterisk.c index 0fd1711699..e82223d588 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -2826,7 +2826,7 @@ static void ast_readconfig(void) struct ast_variable *v; char *config = DEFAULT_CONFIG_FILE; char hostname[MAXHOSTNAMELEN] = ""; - struct ast_flags config_flags = { 0 }; + struct ast_flags config_flags = { CONFIG_FLAG_NOREALTIME }; struct { unsigned int dbdir:1; unsigned int keydir:1; diff --git a/main/config.c b/main/config.c index f65c69e537..1ed46b77c1 100644 --- a/main/config.c +++ b/main/config.c @@ -1896,7 +1896,7 @@ int read_config_maps(void) struct ast_config *config, *configtmp; struct ast_variable *v; char *driver, *table, *database, *stringp, *tmp; - struct ast_flags flags = { 0 }; + struct ast_flags flags = { CONFIG_FLAG_NOREALTIME }; clear_config_maps(); @@ -2060,7 +2060,7 @@ struct ast_config *ast_config_internal_load(const char *filename, struct ast_con cfg->include_level++; - if (strcmp(filename, extconfig_conf) && strcmp(filename, "asterisk.conf") && config_engine_list) { + if (!ast_test_flag(&flags, CONFIG_FLAG_NOREALTIME) && config_engine_list) { struct ast_config_engine *eng; eng = find_engine(filename, db, sizeof(db), table, sizeof(table)); diff --git a/main/loader.c b/main/loader.c index 0249af9d81..17bb1f8211 100644 --- a/main/loader.c +++ b/main/loader.c @@ -899,9 +899,9 @@ static int mod_load_cmp(void *a, void *b) struct ast_module *a_mod = (struct ast_module *) a; struct ast_module *b_mod = (struct ast_module *) b; int res = -1; - /* if load_pri is not set, default is 255. Lower is better*/ - unsigned char a_pri = ast_test_flag(a_mod->info, AST_MODFLAG_LOAD_ORDER) ? a_mod->info->load_pri : 255; - unsigned char b_pri = ast_test_flag(b_mod->info, AST_MODFLAG_LOAD_ORDER) ? b_mod->info->load_pri : 255; + /* if load_pri is not set, default is 128. Lower is better*/ + unsigned char a_pri = ast_test_flag(a_mod->info, AST_MODFLAG_LOAD_ORDER) ? a_mod->info->load_pri : 128; + unsigned char b_pri = ast_test_flag(b_mod->info, AST_MODFLAG_LOAD_ORDER) ? b_mod->info->load_pri : 128; if (a_pri == b_pri) { res = 0; } else if (a_pri < b_pri) { diff --git a/pbx/pbx_lua.c b/pbx/pbx_lua.c index e292117a38..c37dba6fa9 100644 --- a/pbx/pbx_lua.c +++ b/pbx/pbx_lua.c @@ -84,7 +84,7 @@ static void lua_create_application_metatable(lua_State *L); static void lua_create_autoservice_functions(lua_State *L); static void lua_create_hangup_function(lua_State *L); -void lua_state_destroy(void *data); +static void lua_state_destroy(void *data); static lua_State *lua_get_state(struct ast_channel *chan); static int exists(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data); @@ -108,7 +108,7 @@ static const struct ast_datastore_info lua_datastore = { /*! * \brief The destructor for lua_datastore */ -void lua_state_destroy(void *data) +static void lua_state_destroy(void *data) { if (data) lua_close(data); @@ -1467,7 +1467,7 @@ static int load_module(void) return AST_MODULE_LOAD_SUCCESS; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Lua PBX Switch", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Lua PBX Switch", .load = load_module, .unload = unload_module, .reload = reload, diff --git a/res/res_adsi.c b/res/res_adsi.c index b7e8327506..226105d87b 100644 --- a/res/res_adsi.c +++ b/res/res_adsi.c @@ -1141,8 +1141,9 @@ static int unload_module(void) return -1; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "ADSI Resource", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "ADSI Resource", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_APP_DEPEND, ); diff --git a/res/res_agi.c b/res/res_agi.c index bd8ad4bfd3..8d5fd812a5 100644 --- a/res/res_agi.c +++ b/res/res_agi.c @@ -3848,7 +3848,8 @@ static int load_module(void) return ast_register_application_xml(app, agi_exec); } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Asterisk Gateway Interface (AGI)", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Asterisk Gateway Interface (AGI)", .load = load_module, .unload = unload_module, + .load_pri = AST_MODPRI_APP_DEPEND, ); diff --git a/res/res_calendar.c b/res/res_calendar.c index 2e3c8e4a1e..2de9959335 100644 --- a/res/res_calendar.c +++ b/res/res_calendar.c @@ -1693,8 +1693,9 @@ static int load_module(void) return AST_MODULE_LOAD_SUCCESS; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Asterisk Calendar integration", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Asterisk Calendar integration", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_DEVSTATE_PROVIDER, ); diff --git a/res/res_calendar_caldav.c b/res/res_calendar_caldav.c index 583b4b1de9..664f25b87e 100644 --- a/res/res_calendar_caldav.c +++ b/res/res_calendar_caldav.c @@ -690,7 +690,8 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk CalDAV Calendar Integration", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk CalDAV Calendar Integration", .load = load_module, .unload = unload_module, + .load_pri = AST_MODPRI_DEVSTATE_PLUGIN, ); diff --git a/res/res_calendar_ews.c b/res/res_calendar_ews.c index ea06b7a8da..931e368547 100644 --- a/res/res_calendar_ews.c +++ b/res/res_calendar_ews.c @@ -832,7 +832,8 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk MS Exchange Web Service Calendar Integration", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk MS Exchange Web Service Calendar Integration", .load = load_module, .unload = unload_module, + .load_pri = AST_MODPRI_DEVSTATE_PLUGIN, ); diff --git a/res/res_calendar_exchange.c b/res/res_calendar_exchange.c index 59e44c511d..b1707c5e2a 100644 --- a/res/res_calendar_exchange.c +++ b/res/res_calendar_exchange.c @@ -753,7 +753,8 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk MS Exchange Calendar Integration", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk MS Exchange Calendar Integration", .load = load_module, .unload = unload_module, + .load_pri = AST_MODPRI_DEVSTATE_PLUGIN, ); diff --git a/res/res_calendar_icalendar.c b/res/res_calendar_icalendar.c index 34a8b101b3..2eda352456 100644 --- a/res/res_calendar_icalendar.c +++ b/res/res_calendar_icalendar.c @@ -481,7 +481,8 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk iCalendar .ics file integration", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk iCalendar .ics file integration", .load = load_module, .unload = unload_module, + .load_pri = AST_MODPRI_DEVSTATE_PLUGIN, ); diff --git a/res/res_config_curl.c b/res/res_config_curl.c index 95b1589e2f..0ff6694dcb 100644 --- a/res/res_config_curl.c +++ b/res/res_config_curl.c @@ -608,6 +608,38 @@ static struct ast_config_engine curl_engine = { .require_func = require_curl, }; +static int reload_module(void) +{ + struct ast_flags flags = { CONFIG_FLAG_NOREALTIME }; + struct ast_config *cfg; + struct ast_variable *var; + + if (!(cfg = ast_config_load("res_curl.conf", flags))) { + return 0; + } else if (cfg == CONFIG_STATUS_FILEINVALID) { + ast_log(LOG_WARNING, "res_curl.conf could not be parsed!\n"); + return 0; + } + + if (!(var = ast_variable_browse(cfg, "globals")) && !(var = ast_variable_browse(cfg, "global")) && !(var = ast_variable_browse(cfg, "general"))) { + ast_log(LOG_WARNING, "[globals] not found in res_curl.conf\n"); + ast_config_destroy(cfg); + return 0; + } + + for (; var; var = var->next) { + if (strncmp(var->name, "CURLOPT(", 8)) { + char name[256]; + snprintf(name, sizeof(name), "CURLOPT(%s)", var->name); + pbx_builtin_setvar_helper(NULL, name, var->value); + } else { + pbx_builtin_setvar_helper(NULL, var->name, var->value); + } + } + ast_config_destroy(cfg); + return 0; +} + static int unload_module(void) { ast_config_engine_deregister(&curl_engine); @@ -624,9 +656,23 @@ static int load_module(void) } } + if (!ast_module_check("func_curl.so")) { + if (ast_load_resource("func_curl.so") != AST_MODULE_LOAD_SUCCESS) { + ast_log(LOG_ERROR, "Cannot load func_curl, so res_config_curl cannot be loaded\n"); + return AST_MODULE_LOAD_DECLINE; + } + } + + reload_module(); + ast_config_engine_register(&curl_engine); ast_verb(1, "res_config_curl loaded.\n"); return 0; } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Realtime Curl configuration"); +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Realtime Curl configuration", + .load = load_module, + .unload = unload_module, + .reload = reload_module, + .load_pri = AST_MODPRI_REALTIME_DRIVER, + ); diff --git a/res/res_config_ldap.c b/res/res_config_ldap.c index 8496d801a3..77ad8422b1 100644 --- a/res/res_config_ldap.c +++ b/res/res_config_ldap.c @@ -1778,8 +1778,9 @@ static char *realtime_ldap_status(struct ast_cli_entry *e, int cmd, struct ast_c return CLI_SUCCESS; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "LDAP realtime interface", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "LDAP realtime interface", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_REALTIME_DRIVER, ); diff --git a/res/res_config_odbc.c b/res/res_config_odbc.c index f06ab25c2d..7498723035 100644 --- a/res/res_config_odbc.c +++ b/res/res_config_odbc.c @@ -1146,8 +1146,9 @@ static int reload_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Realtime ODBC configuration", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Realtime ODBC configuration", .load = load_module, .unload = unload_module, .reload = reload_module, + .load_pri = AST_MODPRI_REALTIME_DRIVER, ); diff --git a/res/res_config_pgsql.c b/res/res_config_pgsql.c index 3bed287e67..14a98a3b2d 100644 --- a/res/res_config_pgsql.c +++ b/res/res_config_pgsql.c @@ -1599,8 +1599,9 @@ static char *handle_cli_realtime_pgsql_status(struct ast_cli_entry *e, int cmd, } /* needs usecount semantics defined */ -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "PostgreSQL RealTime Configuration Driver", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PostgreSQL RealTime Configuration Driver", .load = load_module, .unload = unload_module, - .reload = reload + .reload = reload, + .load_pri = AST_MODPRI_REALTIME_DRIVER, ); diff --git a/res/res_config_sqlite.c b/res/res_config_sqlite.c index 2007a81f63..744a07bac7 100644 --- a/res/res_config_sqlite.c +++ b/res/res_config_sqlite.c @@ -1866,7 +1866,8 @@ static int load_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Realtime SQLite configuration", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Realtime SQLite configuration", .load = load_module, .unload = unload_module, + .load_pri = AST_MODPRI_REALTIME_DRIVER, ); diff --git a/res/res_crypto.c b/res/res_crypto.c index 06feefd07b..cb87eeec3c 100644 --- a/res/res_crypto.c +++ b/res/res_crypto.c @@ -637,8 +637,9 @@ static int unload_module(void) } /* needs usecount semantics defined */ -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Cryptographic Digital Signatures", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Cryptographic Digital Signatures", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DEPEND, /*!< Since we don't have a config file, we could move up to REALTIME_DEPEND, if necessary */ ); diff --git a/res/res_curl.c b/res/res_curl.c index d2783ca108..411c06e11b 100644 --- a/res/res_curl.c +++ b/res/res_curl.c @@ -65,9 +65,13 @@ static int load_module(void) if (curl_global_init(CURL_GLOBAL_ALL)) { ast_log(LOG_ERROR, "Unable to initialize the CURL library. Cannot load res_curl\n"); return AST_MODULE_LOAD_DECLINE; - } + } return res; } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "cURL Resource Module"); +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "cURL Resource Module", + .load = load_module, + .unload = unload_module, + .load_pri = AST_MODPRI_REALTIME_DEPEND, + ); diff --git a/res/res_fax.c b/res/res_fax.c index 159eec7cdd..8695414eaf 100644 --- a/res/res_fax.c +++ b/res/res_fax.c @@ -2478,7 +2478,8 @@ static int load_module(void) } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Generic FAX Applications", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Generic FAX Applications", .load = load_module, .unload = unload_module, + .load_pri = AST_MODPRI_APP_DEPEND, ); diff --git a/res/res_jabber.c b/res/res_jabber.c index ecded13325..5238441f1b 100644 --- a/res/res_jabber.c +++ b/res/res_jabber.c @@ -4729,8 +4729,9 @@ static int reload(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "AJI - Asterisk Jabber Interface", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "AJI - Asterisk Jabber Interface", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DEPEND, ); diff --git a/res/res_monitor.c b/res/res_monitor.c index febdab4a61..d508da13a6 100644 --- a/res/res_monitor.c +++ b/res/res_monitor.c @@ -930,7 +930,8 @@ static int unload_module(void) } /* usecount semantics need to be defined */ -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Call Monitoring Resource", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Call Monitoring Resource", .load = load_module, .unload = unload_module, + .load_pri = AST_MODPRI_CHANNEL_DEPEND, ); diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c index 5650ddc4db..2361b2280a 100644 --- a/res/res_musiconhold.c +++ b/res/res_musiconhold.c @@ -1905,8 +1905,9 @@ static int unload_module(void) return res; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Music On Hold Resource", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Music On Hold Resource", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DEPEND, ); diff --git a/res/res_odbc.c b/res/res_odbc.c index ed7aa986d0..ec1591c008 100644 --- a/res/res_odbc.c +++ b/res/res_odbc.c @@ -1784,8 +1784,9 @@ static int load_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "ODBC resource", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "ODBC resource", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_REALTIME_DEPEND, ); diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index 28f75c8b10..09c5e6ba44 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -2775,8 +2775,9 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk RTP Stack", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk RTP Stack", .load = load_module, .unload = unload_module, .reload = reload_module, + .load_pri = AST_MODPRI_CHANNEL_DEPEND, ); diff --git a/res/res_rtp_multicast.c b/res/res_rtp_multicast.c index 19d21bcfbc..56a8cd23cb 100644 --- a/res/res_rtp_multicast.c +++ b/res/res_rtp_multicast.c @@ -268,4 +268,8 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Multicast RTP Engine"); +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Multicast RTP Engine", + .load = load_module, + .unload = unload_module, + .load_pri = AST_MODPRI_CHANNEL_DEPEND, +); diff --git a/res/res_smdi.c b/res/res_smdi.c index fe99cc9ea7..19b049f17f 100644 --- a/res/res_smdi.c +++ b/res/res_smdi.c @@ -1471,8 +1471,9 @@ static int reload(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Simplified Message Desk Interface (SMDI) Resource", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Simplified Message Desk Interface (SMDI) Resource", .load = load_module, .unload = unload_module, .reload = reload, + .load_pri = AST_MODPRI_CHANNEL_DEPEND, ); diff --git a/res/res_speech.c b/res/res_speech.c index 3f5f96048d..46a846f039 100644 --- a/res/res_speech.c +++ b/res/res_speech.c @@ -339,7 +339,8 @@ static int load_module(void) return AST_MODULE_LOAD_SUCCESS; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Generic Speech Recognition API", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Generic Speech Recognition API", .load = load_module, .unload = unload_module, + .load_pri = AST_MODPRI_APP_DEPEND, ); diff --git a/res/res_srtp.c b/res/res_srtp.c index 8b753ff878..546f0733d7 100644 --- a/res/res_srtp.c +++ b/res/res_srtp.c @@ -397,7 +397,8 @@ static int unload_module(void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Secure RTP (SRTP)", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Secure RTP (SRTP)", .load = load_module, .unload = unload_module, + .load_pri = AST_MODPRI_CHANNEL_DEPEND, ); diff --git a/res/res_timing_dahdi.c b/res/res_timing_dahdi.c index f8235db63d..8a2382834c 100644 --- a/res/res_timing_dahdi.c +++ b/res/res_timing_dahdi.c @@ -202,5 +202,5 @@ static int unload_module(void) AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "DAHDI Timing Interface", .load = load_module, .unload = unload_module, - .load_pri = 10, + .load_pri = AST_MODPRI_CHANNEL_DEPEND, ); diff --git a/res/res_timing_kqueue.c b/res/res_timing_kqueue.c index 757fc528bf..1fef5fb993 100644 --- a/res/res_timing_kqueue.c +++ b/res/res_timing_kqueue.c @@ -390,5 +390,5 @@ static int unload_module(void) AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "KQueue Timing Interface", .load = load_module, .unload = unload_module, - .load_pri = 10, + .load_pri = AST_MODPRI_CHANNEL_DEPEND, ); diff --git a/res/res_timing_pthread.c b/res/res_timing_pthread.c index 53ceeb5de7..d63b39d1fc 100644 --- a/res/res_timing_pthread.c +++ b/res/res_timing_pthread.c @@ -524,5 +524,5 @@ static int unload_module(void) AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "pthread Timing Interface", .load = load_module, .unload = unload_module, - .load_pri = 10, + .load_pri = AST_MODPRI_CHANNEL_DEPEND, ); diff --git a/res/res_timing_timerfd.c b/res/res_timing_timerfd.c index 12bb493dc1..bffa007de2 100644 --- a/res/res_timing_timerfd.c +++ b/res/res_timing_timerfd.c @@ -299,5 +299,5 @@ static int unload_module(void) AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Timerfd Timing Interface", .load = load_module, .unload = unload_module, - .load_pri = 10, + .load_pri = AST_MODPRI_CHANNEL_DEPEND, ); -- GitLab