summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorey Farrell <git@cfware.com>2017-12-29 03:57:17 -0500
committerCorey Farrell <git@cfware.com>2018-01-24 13:37:29 -0500
commit527cf5a57033820313356414b971fdf0f4382b21 (patch)
tree44810fb922062b5c2879cad1e9cb49b6d8772a80
parent7ce34f4e6a8a2bbfc3cfac9a4465eb0f71372205 (diff)
Remove redundant module checks and references.
This removes references that are no longer needed due to automatic references created by module dependencies. In addition this removes most calls to ast_module_check as they were checking modules which are listed as dependencies. Change-Id: I332a6e8383d4c72c8e89d988a184ab8320c4872e
-rw-r--r--apps/app_confbridge.c5
-rw-r--r--apps/app_meetme.c3
-rw-r--r--apps/app_stack.c2
-rw-r--r--apps/app_stasis.c11
-rw-r--r--channels/chan_pjsip.c30
-rw-r--r--funcs/func_curl.c8
-rw-r--r--funcs/func_periodic_hook.c5
-rw-r--r--include/asterisk/agi.h6
-rw-r--r--include/asterisk/ari.h10
-rw-r--r--include/asterisk/res_mwi_external.h16
-rw-r--r--include/asterisk/res_pjproject.h22
-rw-r--r--include/asterisk/res_pjsip.h31
-rw-r--r--include/asterisk/res_pjsip_pubsub.h9
-rw-r--r--include/asterisk/res_pjsip_session.h21
-rw-r--r--include/asterisk/stasis_app.h30
-rw-r--r--res/res_agi.c19
-rw-r--r--res/res_ari.c2
-rw-r--r--res/res_ari_applications.c4
-rw-r--r--res/res_ari_asterisk.c4
-rw-r--r--res/res_ari_bridges.c4
-rw-r--r--res/res_ari_channels.c4
-rw-r--r--res/res_ari_device_states.c4
-rw-r--r--res/res_ari_endpoints.c4
-rw-r--r--res/res_ari_events.c43
-rw-r--r--res/res_ari_mailboxes.c4
-rw-r--r--res/res_ari_playbacks.c4
-rw-r--r--res/res_ari_recordings.c4
-rw-r--r--res/res_ari_sounds.c4
-rw-r--r--res/res_config_curl.c15
-rw-r--r--res/res_crypto.c3
-rw-r--r--res/res_curl.c24
-rw-r--r--res/res_fax.c2
-rw-r--r--res/res_hep_pjsip.c6
-rw-r--r--res/res_hep_rtcp.c4
-rw-r--r--res/res_http_media_cache.c1
-rw-r--r--res/res_http_websocket.c33
-rw-r--r--res/res_monitor.c3
-rw-r--r--res/res_mwi_external.c10
-rw-r--r--res/res_mwi_external_ami.c5
-rw-r--r--res/res_pjproject.c10
-rw-r--r--res/res_pjsip.c96
-rw-r--r--res/res_pjsip/config_auth.c4
-rw-r--r--res/res_pjsip/config_transport.c4
-rw-r--r--res/res_pjsip/include/res_pjsip_private.h48
-rw-r--r--res/res_pjsip/location.c4
-rw-r--r--res/res_pjsip/pjsip_distributor.c12
-rw-r--r--res/res_pjsip/pjsip_global_headers.c4
-rw-r--r--res/res_pjsip/pjsip_message_filter.c16
-rw-r--r--res/res_pjsip/pjsip_options.c4
-rw-r--r--res/res_pjsip/pjsip_session.c25
-rw-r--r--res/res_pjsip_acl.c2
-rw-r--r--res/res_pjsip_authenticator_digest.c2
-rw-r--r--res/res_pjsip_caller_id.c2
-rw-r--r--res/res_pjsip_dialog_info_body_generator.c2
-rw-r--r--res/res_pjsip_diversion.c4
-rw-r--r--res/res_pjsip_dlg_options.c5
-rw-r--r--res/res_pjsip_dtmf_info.c4
-rw-r--r--res/res_pjsip_empty_info.c4
-rw-r--r--res/res_pjsip_endpoint_identifier_anonymous.c2
-rw-r--r--res/res_pjsip_endpoint_identifier_ip.c2
-rw-r--r--res/res_pjsip_endpoint_identifier_user.c2
-rw-r--r--res/res_pjsip_exten_state.c7
-rw-r--r--res/res_pjsip_header_funcs.c2
-rw-r--r--res/res_pjsip_history.c2
-rw-r--r--res/res_pjsip_logger.c2
-rw-r--r--res/res_pjsip_messaging.c4
-rw-r--r--res/res_pjsip_mwi.c2
-rw-r--r--res/res_pjsip_mwi_body_generator.c2
-rw-r--r--res/res_pjsip_nat.c10
-rw-r--r--res/res_pjsip_notify.c2
-rw-r--r--res/res_pjsip_one_touch_record_info.c9
-rw-r--r--res/res_pjsip_outbound_authenticator_digest.c2
-rw-r--r--res/res_pjsip_outbound_publish.c4
-rw-r--r--res/res_pjsip_outbound_registration.c2
-rw-r--r--res/res_pjsip_path.c14
-rw-r--r--res/res_pjsip_phoneprov_provider.c2
-rw-r--r--res/res_pjsip_pidf_body_generator.c2
-rw-r--r--res/res_pjsip_pidf_digium_body_supplement.c2
-rw-r--r--res/res_pjsip_pidf_eyebeam_body_supplement.c2
-rw-r--r--res/res_pjsip_publish_asterisk.c2
-rw-r--r--res/res_pjsip_pubsub.c7
-rw-r--r--res/res_pjsip_refer.c2
-rw-r--r--res/res_pjsip_registrar.c4
-rw-r--r--res/res_pjsip_registrar_expire.c2
-rw-r--r--res/res_pjsip_rfc3326.c4
-rw-r--r--res/res_pjsip_sdp_rtp.c2
-rw-r--r--res/res_pjsip_send_to_voicemail.c7
-rw-r--r--res/res_pjsip_session.c7
-rw-r--r--res/res_pjsip_sips_contact.c2
-rw-r--r--res/res_pjsip_t38.c7
-rw-r--r--res/res_pjsip_transport_management.c2
-rw-r--r--res/res_pjsip_transport_websocket.c7
-rw-r--r--res/res_pjsip_xpidf_body_generator.c2
-rw-r--r--res/res_pktccops.c3
-rw-r--r--res/res_smdi.c3
-rw-r--r--res/res_stasis.c20
-rw-r--r--res/res_stasis_mailbox.c6
-rw-r--r--res/res_statsd.c3
-rw-r--r--res/stasis/app.c7
-rw-r--r--rest-api-templates/res_ari_resource.c.mustache45
-rw-r--r--tests/test_res_pjsip_scheduler.c2
-rw-r--r--tests/test_res_stasis.c2
-rw-r--r--tests/test_utils.c2
103 files changed, 141 insertions, 758 deletions
diff --git a/apps/app_confbridge.c b/apps/app_confbridge.c
index f972e38b9..7e6f94c34 100644
--- a/apps/app_confbridge.c
+++ b/apps/app_confbridge.c
@@ -2386,11 +2386,11 @@ static int confbridge_exec(struct ast_channel *chan, const char *data)
user.tech_args.drop_silence = 1;
}
- if (ast_test_flag(&user.u_profile, USER_OPT_JITTERBUFFER) && ast_module_check("func_jitterbuffer.so")) {
+ if (ast_test_flag(&user.u_profile, USER_OPT_JITTERBUFFER)) {
ast_func_write(chan, "JITTERBUFFER(adaptive)", "default");
}
- if (ast_test_flag(&user.u_profile, USER_OPT_DENOISE) && ast_module_check("codec_speex.so")) {
+ if (ast_test_flag(&user.u_profile, USER_OPT_DENOISE)) {
ast_func_write(chan, "DENOISE(rx)", "on");
}
@@ -4088,4 +4088,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Conference Bridge App
.unload = unload_module,
.reload = reload,
.load_pri = AST_MODPRI_DEVSTATE_PROVIDER,
+ .optional_modules = "codec_speex,func_jitterbuffer",
);
diff --git a/apps/app_meetme.c b/apps/app_meetme.c
index 634eac820..657aaa7b7 100644
--- a/apps/app_meetme.c
+++ b/apps/app_meetme.c
@@ -3588,7 +3588,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, struc
}
/* Reduce background noise from each participant */
- if (!ast_test_flag64(confflags, CONFFLAG_DONT_DENOISE) && ast_module_check("func_speex.so")) {
+ if (!ast_test_flag64(confflags, CONFFLAG_DONT_DENOISE)) {
ast_func_write(chan, "DENOISE(rx)", "on");
}
@@ -8085,4 +8085,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "MeetMe conference bri
.unload = unload_module,
.reload = reload,
.load_pri = AST_MODPRI_DEVSTATE_PROVIDER,
+ .optional_modules = "func_speex",
);
diff --git a/apps/app_stack.c b/apps/app_stack.c
index 1f98378c9..4560865ab 100644
--- a/apps/app_stack.c
+++ b/apps/app_stack.c
@@ -1278,7 +1278,7 @@ static int unload_module(void)
{
ast_install_stack_functions(NULL);
- ast_agi_unregister(ast_module_info->self, &gosub_agi_command);
+ ast_agi_unregister(&gosub_agi_command);
ast_unregister_application(app_return);
ast_unregister_application(app_pop);
diff --git a/apps/app_stasis.c b/apps/app_stasis.c
index 8d09349b9..b98c2b446 100644
--- a/apps/app_stasis.c
+++ b/apps/app_stasis.c
@@ -125,19 +125,12 @@ static int app_exec(struct ast_channel *chan, const char *data)
static int load_module(void)
{
- int r = 0;
-
- stasis_app_ref();
- r |= ast_register_application_xml(stasis, app_exec);
- return r;
+ return ast_register_application_xml(stasis, app_exec);
}
static int unload_module(void)
{
- int r = 0;
- r |= ast_unregister_application(stasis);
- stasis_app_unref();
- return r;
+ return ast_unregister_application(stasis);
}
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Stasis dialplan application",
diff --git a/channels/chan_pjsip.c b/channels/chan_pjsip.c
index 68da4a1bb..2c111feeb 100644
--- a/channels/chan_pjsip.c
+++ b/channels/chan_pjsip.c
@@ -2981,8 +2981,6 @@ static int load_module(void)
{
struct ao2_container *endpoints;
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
if (!(chan_pjsip_tech.capabilities = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT))) {
return AST_MODULE_LOAD_DECLINE;
}
@@ -3016,10 +3014,7 @@ static int load_module(void)
goto end;
}
- if (ast_sip_session_register_supplement(&chan_pjsip_supplement)) {
- ast_log(LOG_ERROR, "Unable to register PJSIP supplement\n");
- goto end;
- }
+ ast_sip_session_register_supplement(&chan_pjsip_supplement);
if (!(pjsip_uids_onhold = ao2_container_alloc_hash(AO2_ALLOC_OPT_LOCK_RWLOCK,
AO2_CONTAINER_ALLOC_OPT_DUPS_REJECT, 37, uid_hold_hash_fn,
@@ -3028,26 +3023,9 @@ static int load_module(void)
goto end;
}
- if (ast_sip_session_register_supplement(&call_pickup_supplement)) {
- ast_log(LOG_ERROR, "Unable to register PJSIP call pickup supplement\n");
- ast_sip_session_unregister_supplement(&chan_pjsip_supplement);
- goto end;
- }
-
- if (ast_sip_session_register_supplement(&pbx_start_supplement)) {
- ast_log(LOG_ERROR, "Unable to register PJSIP pbx start supplement\n");
- ast_sip_session_unregister_supplement(&chan_pjsip_supplement);
- ast_sip_session_unregister_supplement(&call_pickup_supplement);
- goto end;
- }
-
- if (ast_sip_session_register_supplement(&chan_pjsip_ack_supplement)) {
- ast_log(LOG_ERROR, "Unable to register PJSIP ACK supplement\n");
- ast_sip_session_unregister_supplement(&pbx_start_supplement);
- ast_sip_session_unregister_supplement(&chan_pjsip_supplement);
- ast_sip_session_unregister_supplement(&call_pickup_supplement);
- goto end;
- }
+ ast_sip_session_register_supplement(&call_pickup_supplement);
+ ast_sip_session_register_supplement(&pbx_start_supplement);
+ ast_sip_session_register_supplement(&chan_pjsip_ack_supplement);
if (pjsip_channel_cli_register()) {
ast_log(LOG_ERROR, "Unable to register PJSIP Channel CLI\n");
diff --git a/funcs/func_curl.c b/funcs/func_curl.c
index ebb3dce23..682ad5a42 100644
--- a/funcs/func_curl.c
+++ b/funcs/func_curl.c
@@ -920,13 +920,6 @@ static int load_module(void)
{
int res;
- if (!ast_module_check("res_curl.so")) {
- if (ast_load_resource("res_curl.so") != AST_MODULE_LOAD_SUCCESS) {
- ast_log(LOG_ERROR, "Cannot load res_curl, so func_curl cannot be loaded\n");
- return AST_MODULE_LOAD_DECLINE;
- }
- }
-
res = ast_custom_function_register_escalating(&acf_curl, AST_CFE_WRITE);
res |= ast_custom_function_register(&acf_curlopt);
@@ -940,4 +933,5 @@ 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,
+ .requires = "res_curl",
);
diff --git a/funcs/func_periodic_hook.c b/funcs/func_periodic_hook.c
index 958da9728..1f66747c3 100644
--- a/funcs/func_periodic_hook.c
+++ b/funcs/func_periodic_hook.c
@@ -486,11 +486,6 @@ static int load_module(void)
res = ast_custom_function_register_escalating(&hook_function, AST_CFE_BOTH);
- if (!res) {
- /* For Optional API. */
- ast_module_shutdown_ref(AST_MODULE_SELF);
- }
-
return res ? AST_MODULE_LOAD_DECLINE : AST_MODULE_LOAD_SUCCESS;
}
diff --git a/include/asterisk/agi.h b/include/asterisk/agi.h
index cb80f9570..568cd5d11 100644
--- a/include/asterisk/agi.h
+++ b/include/asterisk/agi.h
@@ -82,13 +82,12 @@ AST_OPTIONAL_API(int, ast_agi_register,
*
* Unregisters an AGI command.
*
- * \param mod Pointer to the module_info structure for the module that is unregistering the command
* \param cmd Pointer to the descriptor for the command
* \return 1 on success, 0 if the command was not already registered
*
*/
AST_OPTIONAL_API(int, ast_agi_unregister,
- (struct ast_module *mod, agi_command *cmd),
+ (agi_command *cmd),
{ return AST_OPTIONAL_API_UNAVAILABLE; });
/*!
@@ -116,7 +115,6 @@ AST_OPTIONAL_API(int, ast_agi_register_multiple,
* Unregisters a group of AGI commands, provided as an array of struct agi_command
* entries.
*
- * \param mod Pointer to the module_info structure for the module that is unregistering the commands
* \param cmd Pointer to the first entry in the array of command descriptors
* \param len Length of the array (use the ARRAY_LEN macro to determine this easily)
* \return 0 on success, -1 on failure, AST_OPTIONAL_API_UNAVAILABLE if res_agi is not loaded
@@ -125,7 +123,7 @@ AST_OPTIONAL_API(int, ast_agi_register_multiple,
* remaining commands in the array; it will not reregister the already-unregistered commands.
*/
AST_OPTIONAL_API(int, ast_agi_unregister_multiple,
- (struct ast_module *mod, struct agi_command *cmd, unsigned int len),
+ (struct agi_command *cmd, unsigned int len),
{ return AST_OPTIONAL_API_UNAVAILABLE; });
/*!
diff --git a/include/asterisk/ari.h b/include/asterisk/ari.h
index f83d5963f..865b4b00c 100644
--- a/include/asterisk/ari.h
+++ b/include/asterisk/ari.h
@@ -268,14 +268,4 @@ void ast_ari_response_created(struct ast_ari_response *response,
*/
void ast_ari_response_alloc_failed(struct ast_ari_response *response);
-/*! \brief Determines whether the res_ari module is loaded */
-#define CHECK_ARI_MODULE_LOADED() \
- do { \
- if (!ast_module_check("res_ari.so") \
- || !ast_ari_oom_json()) { \
- return AST_MODULE_LOAD_DECLINE; \
- } \
- } while(0)
-
-
#endif /* _ASTERISK_ARI_H */
diff --git a/include/asterisk/res_mwi_external.h b/include/asterisk/res_mwi_external.h
index 7698a1bd6..25de70003 100644
--- a/include/asterisk/res_mwi_external.h
+++ b/include/asterisk/res_mwi_external.h
@@ -36,22 +36,6 @@ extern "C"
/* ------------------------------------------------------------------- */
-/*!
- * \brief Increase the external MWI resource module reference count.
- * \since 12.1.0
- *
- * \return Nothing
- */
-void ast_mwi_external_ref(void);
-
-/*!
- * \brief Decrease the external MWI resource module reference count.
- * \since 12.1.0
- *
- * \return Nothing
- */
-void ast_mwi_external_unref(void);
-
struct ast_mwi_mailbox_object;
/*! \brief Convienience unref function for mailbox object. */
diff --git a/include/asterisk/res_pjproject.h b/include/asterisk/res_pjproject.h
index 8828b340c..4993be610 100644
--- a/include/asterisk/res_pjproject.h
+++ b/include/asterisk/res_pjproject.h
@@ -19,14 +19,6 @@
#ifndef _RES_PJPROJECT_H
#define _RES_PJPROJECT_H
-/*! \brief Determines whether the res_pjproject module is loaded */
-#define CHECK_PJPROJECT_MODULE_LOADED() \
- do { \
- if (!ast_module_check("res_pjproject.so")) { \
- return AST_MODULE_LOAD_DECLINE; \
- } \
- } while(0)
-
/*!
* \brief Retrieve a pjproject build option
*
@@ -79,18 +71,4 @@ void ast_pjproject_log_intercept_begin(int fd);
*/
void ast_pjproject_log_intercept_end(void);
-/*!
- * \brief Increment the res_pjproject reference count.
- *
- * This ensures graceful shutdown happens in the proper order.
- */
-void ast_pjproject_ref(void);
-
-/*!
- * \brief Decrement the res_pjproject reference count.
- *
- * This ensures graceful shutdown happens in the proper order.
- */
-void ast_pjproject_unref(void);
-
#endif /* _RES_PJPROJECT_H */
diff --git a/include/asterisk/res_pjsip.h b/include/asterisk/res_pjsip.h
index 66b99b8f7..a3bd78222 100644
--- a/include/asterisk/res_pjsip.h
+++ b/include/asterisk/res_pjsip.h
@@ -933,9 +933,7 @@ enum ast_sip_contact_filter {
* \retval 0 Success
* \retval -1 Failure
*/
-#define ast_sip_register_service(module) \
- __ast_sip_register_service(module, __FILE__, __LINE__, __PRETTY_FUNCTION__)
-int __ast_sip_register_service(pjsip_module *module, const char *file, int line, const char *func);
+int ast_sip_register_service(pjsip_module *module);
/*!
* This is the opposite of ast_sip_register_service(). Unregistering a
@@ -944,9 +942,7 @@ int __ast_sip_register_service(pjsip_module *module, const char *file, int line,
*
* \param module The PJSIP module to unregister
*/
-#define ast_sip_unregister_service(module) \
- __ast_sip_unregister_service(module, __FILE__, __LINE__, __PRETTY_FUNCTION__)
-void __ast_sip_unregister_service(pjsip_module *module, const char *file, int line, const char *func);
+void ast_sip_unregister_service(pjsip_module *module);
/*!
* \brief Register a SIP authenticator
@@ -2448,10 +2444,8 @@ struct ast_sip_endpoint_formatter {
* \brief Register an endpoint formatter.
*
* \param obj the formatter to register
- * \retval 0 Success
- * \retval -1 Failure
*/
-int ast_sip_register_endpoint_formatter(struct ast_sip_endpoint_formatter *obj);
+void ast_sip_register_endpoint_formatter(struct ast_sip_endpoint_formatter *obj);
/*!
* \brief Unregister an endpoint formatter.
@@ -2627,20 +2621,14 @@ struct ast_sip_supplement {
* \retval 0 Success
* \retval -1 Failure
*/
-#define ast_sip_register_supplement(supplement) \
- __ast_sip_register_supplement(supplement, __FILE__, __LINE__, __PRETTY_FUNCTION__)
-int __ast_sip_register_supplement(struct ast_sip_supplement *supplement,
- const char *file, int line, const char *func);
+void ast_sip_register_supplement(struct ast_sip_supplement *supplement);
/*!
* \brief Unregister a an supplement to SIP out of dialog processing
*
* \param supplement The supplement to unregister
*/
-#define ast_sip_unregister_supplement(supplement) \
- __ast_sip_unregister_supplement(supplement, __FILE__, __LINE__, __PRETTY_FUNCTION__)
-void __ast_sip_unregister_supplement(struct ast_sip_supplement *supplement,
- const char *file, int line, const char *func);
+void ast_sip_unregister_supplement(struct ast_sip_supplement *supplement);
/*!
* \brief Retrieve the global MWI taskprocessor high water alert trigger level.
@@ -2764,15 +2752,6 @@ void ast_sip_get_default_realm(char *realm, size_t size);
*/
void ast_sip_get_default_from_user(char *from_user, size_t size);
-/*! \brief Determines whether the res_pjsip module is loaded */
-#define CHECK_PJSIP_MODULE_LOADED() \
- do { \
- if (!ast_module_check("res_pjsip.so") \
- || !ast_sip_get_pjsip_endpoint()) { \
- return AST_MODULE_LOAD_DECLINE; \
- } \
- } while(0)
-
/*!
* \brief Retrieve the system keep alive interval setting.
*
diff --git a/include/asterisk/res_pjsip_pubsub.h b/include/asterisk/res_pjsip_pubsub.h
index cb51db31f..e9d59a085 100644
--- a/include/asterisk/res_pjsip_pubsub.h
+++ b/include/asterisk/res_pjsip_pubsub.h
@@ -754,13 +754,4 @@ const char *ast_sip_subscription_get_body_subtype(struct ast_sip_subscription *s
*/
void ast_sip_subscription_destroy(struct ast_sip_subscription *sub);
-/*! \brief Determines whether the res_pjsip_pubsub module is loaded */
-#define CHECK_PJSIP_PUBSUB_MODULE_LOADED() \
- do { \
- CHECK_PJSIP_MODULE_LOADED(); \
- if (!ast_module_check("res_pjsip_pubsub.so")) { \
- return AST_MODULE_LOAD_DECLINE; \
- } \
- } while(0)
-
#endif /* RES_PJSIP_PUBSUB_H */
diff --git a/include/asterisk/res_pjsip_session.h b/include/asterisk/res_pjsip_session.h
index 65d463821..f6ee0f00b 100644
--- a/include/asterisk/res_pjsip_session.h
+++ b/include/asterisk/res_pjsip_session.h
@@ -579,23 +579,15 @@ void ast_sip_session_unregister_sdp_handler(struct ast_sip_session_sdp_handler *
* a module could reject an incoming request if desired.
*
* \param supplement The supplement to register
- * \retval 0 Success
- * \retval -1 Failure
*/
-#define ast_sip_session_register_supplement(supplement) \
- __ast_sip_session_register_supplement(supplement, __FILE__, __LINE__, __PRETTY_FUNCTION__)
-int __ast_sip_session_register_supplement(struct ast_sip_session_supplement *supplement,
- const char *file, int line, const char *func);
+void ast_sip_session_register_supplement(struct ast_sip_session_supplement *supplement);
/*!
* \brief Unregister a an supplement to SIP session processing
*
* \param supplement The supplement to unregister
*/
-#define ast_sip_session_unregister_supplement(supplement) \
- __ast_sip_session_unregister_supplement(supplement, __FILE__, __LINE__, __PRETTY_FUNCTION__)
-void __ast_sip_session_unregister_supplement(struct ast_sip_session_supplement *supplement,
- const char *file, int line, const char *func);
+void ast_sip_session_unregister_supplement(struct ast_sip_session_supplement *supplement);
/*!
* \brief Add supplements to a SIP session
@@ -894,13 +886,4 @@ int ast_sip_session_media_set_write_callback(struct ast_sip_session *session, st
*/
struct ast_sip_session_media *ast_sip_session_media_get_transport(struct ast_sip_session *session, struct ast_sip_session_media *session_media);
-/*! \brief Determines whether the res_pjsip_session module is loaded */
-#define CHECK_PJSIP_SESSION_MODULE_LOADED() \
- do { \
- CHECK_PJSIP_MODULE_LOADED(); \
- if (!ast_module_check("res_pjsip_session.so")) { \
- return AST_MODULE_LOAD_DECLINE; \
- } \
- } while(0)
-
#endif /* _RES_PJSIP_SESSION_H */
diff --git a/include/asterisk/stasis_app.h b/include/asterisk/stasis_app.h
index 8ef2bda1c..b0829ab73 100644
--- a/include/asterisk/stasis_app.h
+++ b/include/asterisk/stasis_app.h
@@ -46,8 +46,8 @@
* functions.
*
* Since module unload order is based on reference counting, any module that
- * uses the API defined in this file must call stasis_app_ref() when loaded,
- * and stasis_app_unref() when unloaded.
+ * uses the API defined in this file must list "res_stasis" in the requires
+ * field.
*/
#include "asterisk/channel.h"
@@ -229,18 +229,6 @@ void stasis_app_register_event_source(struct stasis_app_event_source *obj);
void stasis_app_register_event_sources(void);
/*!
- * \brief Checks to see if the given object is a core event source
- *
- * \note core event sources are currently only endpoint, bridge, and channel.
- *
- * \param obj event source object to check
- *
- * \return non-zero if core event source, otherwise 0 (false)
-
- */
-int stasis_app_is_core_event_source(struct stasis_app_event_source *obj);
-
-/*!
* \brief Unregister an application event source.
*
* \param obj the event source to unregister
@@ -850,20 +838,6 @@ struct ast_bridge *stasis_app_get_bridge(struct stasis_app_control *control);
void stasis_app_bridge_destroy(const char *bridge_id);
/*!
- * \brief Increment the res_stasis reference count.
- *
- * This ensures graceful shutdown happens in the proper order.
- */
-void stasis_app_ref(void);
-
-/*!
- * \brief Decrement the res_stasis reference count.
- *
- * This ensures graceful shutdown happens in the proper order.
- */
-void stasis_app_unref(void);
-
-/*!
* \brief Get the Stasis message sanitizer for app_stasis applications
*
* \retval The stasis message sanitizer
diff --git a/res/res_agi.c b/res/res_agi.c
index 2d0dc2743..0931c1a07 100644
--- a/res/res_agi.c
+++ b/res/res_agi.c
@@ -3815,8 +3815,6 @@ int AST_OPTIONAL_API_NAME(ast_agi_register)(struct ast_module *mod, agi_command
AST_RWLIST_WRLOCK(&agi_commands);
AST_LIST_INSERT_TAIL(&agi_commands, cmd, list);
AST_RWLIST_UNLOCK(&agi_commands);
- if (mod != ast_module_info->self)
- ast_module_ref(ast_module_info->self);
ast_verb(2, "AGI Command '%s' registered\n",fullcmd);
return 1;
} else {
@@ -3825,7 +3823,7 @@ int AST_OPTIONAL_API_NAME(ast_agi_register)(struct ast_module *mod, agi_command
}
}
-int AST_OPTIONAL_API_NAME(ast_agi_unregister)(struct ast_module *mod, agi_command *cmd)
+int AST_OPTIONAL_API_NAME(ast_agi_unregister)(agi_command *cmd)
{
struct agi_command *e;
int unregistered = 0;
@@ -3837,8 +3835,6 @@ int AST_OPTIONAL_API_NAME(ast_agi_unregister)(struct ast_module *mod, agi_comman
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&agi_commands, e, list) {
if (cmd == e) {
AST_RWLIST_REMOVE_CURRENT(list);
- if (mod != ast_module_info->self)
- ast_module_unref(ast_module_info->self);
#ifdef AST_XML_DOCS
if (e->docsrc == AST_XML_DOC) {
ast_free((char *) e->summary);
@@ -3885,7 +3881,7 @@ int AST_OPTIONAL_API_NAME(ast_agi_register_multiple)(struct ast_module *mod, str
to fail is if the command is not
registered
*/
- (void) ast_agi_unregister(mod, cmd + x - 1);
+ (void) ast_agi_unregister(cmd + x - 1);
}
return -1;
}
@@ -3893,7 +3889,7 @@ int AST_OPTIONAL_API_NAME(ast_agi_register_multiple)(struct ast_module *mod, str
return 0;
}
-int AST_OPTIONAL_API_NAME(ast_agi_unregister_multiple)(struct ast_module *mod, struct agi_command *cmd, unsigned int len)
+int AST_OPTIONAL_API_NAME(ast_agi_unregister_multiple)(struct agi_command *cmd, unsigned int len)
{
unsigned int i;
int res = 0;
@@ -3903,7 +3899,7 @@ int AST_OPTIONAL_API_NAME(ast_agi_unregister_multiple)(struct ast_module *mod, s
attempts failed... there is no recourse if
any of them do
*/
- res |= ast_agi_unregister(mod, cmd + i);
+ res |= ast_agi_unregister(cmd + i);
}
return res;
@@ -4659,7 +4655,7 @@ AST_TEST_DEFINE(test_agi_null_docs)
}
#endif
- ast_agi_unregister(ast_module_info->self, &noop_command);
+ ast_agi_unregister(&noop_command);
return res;
}
#endif
@@ -4673,7 +4669,7 @@ static int unload_module(void)
STASIS_MESSAGE_TYPE_CLEANUP(agi_async_end_type);
ast_cli_unregister_multiple(cli_agi, ARRAY_LEN(cli_agi));
- ast_agi_unregister_multiple(ast_module_info->self, commands, ARRAY_LEN(commands));
+ ast_agi_unregister_multiple(commands, ARRAY_LEN(commands));
ast_unregister_application(eapp);
ast_unregister_application(deadapp);
ast_manager_unregister("AGI");
@@ -4706,9 +4702,6 @@ static int load_module(void)
return AST_MODULE_LOAD_DECLINE;
}
- /* For Optional API. */
- ast_module_shutdown_ref(AST_MODULE_SELF);
-
return AST_MODULE_LOAD_SUCCESS;
}
diff --git a/res/res_ari.c b/res/res_ari.c
index 6ce25a582..5ffb5833f 100644
--- a/res/res_ari.c
+++ b/res/res_ari.c
@@ -196,7 +196,6 @@ int ast_ari_add_handler(struct stasis_rest_handlers *handler)
ao2_cleanup(root_handler);
ao2_ref(new_handler, +1);
root_handler = new_handler;
- ast_module_ref(ast_module_info->self);
return 0;
}
@@ -222,7 +221,6 @@ int ast_ari_remove_handler(struct stasis_rest_handlers *handler)
memcpy(new_handler, root_handler, sizeof(*new_handler));
for (i = 0, j = 0; i < root_handler->num_children; ++i) {
if (root_handler->children[i] == handler) {
- ast_module_unref(ast_module_info->self);
continue;
}
new_handler->children[j++] = root_handler->children[i];
diff --git a/res/res_ari_applications.c b/res/res_ari_applications.c
index 323bdb39a..fd8a448ce 100644
--- a/res/res_ari_applications.c
+++ b/res/res_ari_applications.c
@@ -493,7 +493,6 @@ static struct stasis_rest_handlers applications = {
static int unload_module(void)
{
ast_ari_remove_handler(&applications);
- stasis_app_unref();
return 0;
}
@@ -501,10 +500,7 @@ static int load_module(void)
{
int res = 0;
- CHECK_ARI_MODULE_LOADED();
-
- stasis_app_ref();
res |= ast_ari_add_handler(&applications);
if (res) {
unload_module();
diff --git a/res/res_ari_asterisk.c b/res/res_ari_asterisk.c
index 9f76f939b..e143a7f6a 100644
--- a/res/res_ari_asterisk.c
+++ b/res/res_ari_asterisk.c
@@ -1214,7 +1214,6 @@ static struct stasis_rest_handlers asterisk = {
static int unload_module(void)
{
ast_ari_remove_handler(&asterisk);
- stasis_app_unref();
return 0;
}
@@ -1222,10 +1221,7 @@ static int load_module(void)
{
int res = 0;
- CHECK_ARI_MODULE_LOADED();
-
- stasis_app_ref();
res |= ast_ari_add_handler(&asterisk);
if (res) {
unload_module();
diff --git a/res/res_ari_bridges.c b/res/res_ari_bridges.c
index 34b9d898c..3649d290e 100644
--- a/res/res_ari_bridges.c
+++ b/res/res_ari_bridges.c
@@ -1554,7 +1554,6 @@ static struct stasis_rest_handlers bridges = {
static int unload_module(void)
{
ast_ari_remove_handler(&bridges);
- stasis_app_unref();
return 0;
}
@@ -1562,10 +1561,7 @@ static int load_module(void)
{
int res = 0;
- CHECK_ARI_MODULE_LOADED();
-
- stasis_app_ref();
res |= ast_ari_add_handler(&bridges);
if (res) {
unload_module();
diff --git a/res/res_ari_channels.c b/res/res_ari_channels.c
index 7862c1006..ab9ec636e 100644
--- a/res/res_ari_channels.c
+++ b/res/res_ari_channels.c
@@ -2844,7 +2844,6 @@ static struct stasis_rest_handlers channels = {
static int unload_module(void)
{
ast_ari_remove_handler(&channels);
- stasis_app_unref();
return 0;
}
@@ -2852,10 +2851,7 @@ static int load_module(void)
{
int res = 0;
- CHECK_ARI_MODULE_LOADED();
-
- stasis_app_ref();
res |= ast_ari_add_handler(&channels);
if (res) {
unload_module();
diff --git a/res/res_ari_device_states.c b/res/res_ari_device_states.c
index ec8890b1e..fe3f092ae 100644
--- a/res/res_ari_device_states.c
+++ b/res/res_ari_device_states.c
@@ -324,7 +324,6 @@ static struct stasis_rest_handlers deviceStates = {
static int unload_module(void)
{
ast_ari_remove_handler(&deviceStates);
- stasis_app_unref();
return 0;
}
@@ -332,10 +331,7 @@ static int load_module(void)
{
int res = 0;
- CHECK_ARI_MODULE_LOADED();
-
- stasis_app_ref();
res |= ast_ari_add_handler(&deviceStates);
if (res) {
unload_module();
diff --git a/res/res_ari_endpoints.c b/res/res_ari_endpoints.c
index 07197ca97..947da71e2 100644
--- a/res/res_ari_endpoints.c
+++ b/res/res_ari_endpoints.c
@@ -448,7 +448,6 @@ static struct stasis_rest_handlers endpoints = {
static int unload_module(void)
{
ast_ari_remove_handler(&endpoints);
- stasis_app_unref();
return 0;
}
@@ -456,10 +455,7 @@ static int load_module(void)
{
int res = 0;
- CHECK_ARI_MODULE_LOADED();
-
- stasis_app_ref();
res |= ast_ari_add_handler(&endpoints);
if (res) {
unload_module();
diff --git a/res/res_ari_events.c b/res/res_ari_events.c
index f750a5454..1a14ce88b 100644
--- a/res/res_ari_events.c
+++ b/res/res_ari_events.c
@@ -423,7 +423,6 @@ static int unload_module(void)
ao2_cleanup(events.ws_server);
events.ws_server = NULL;
ast_ari_websocket_events_event_websocket_dtor();
- stasis_app_unref();
return 0;
}
@@ -431,35 +430,29 @@ static int load_module(void)
{
int res = 0;
- CHECK_ARI_MODULE_LOADED();
+ struct ast_websocket_protocol *protocol;
- /* This is scoped to not conflict with CHECK_ARI_MODULE_LOADED */
- {
- struct ast_websocket_protocol *protocol;
-
- if (ast_ari_websocket_events_event_websocket_init() == -1) {
- return AST_MODULE_LOAD_DECLINE;
- }
+ if (ast_ari_websocket_events_event_websocket_init() == -1) {
+ return AST_MODULE_LOAD_DECLINE;
+ }
- events.ws_server = ast_websocket_server_create();
- if (!events.ws_server) {
- ast_ari_websocket_events_event_websocket_dtor();
- return AST_MODULE_LOAD_DECLINE;
- }
+ events.ws_server = ast_websocket_server_create();
+ if (!events.ws_server) {
+ ast_ari_websocket_events_event_websocket_dtor();
+ return AST_MODULE_LOAD_DECLINE;
+ }
- protocol = ast_websocket_sub_protocol_alloc("ari");
- if (!protocol) {
- ao2_ref(events.ws_server, -1);
- events.ws_server = NULL;
- ast_ari_websocket_events_event_websocket_dtor();
- return AST_MODULE_LOAD_DECLINE;
- }
- protocol->session_attempted = ast_ari_events_event_websocket_ws_attempted_cb;
- protocol->session_established = ast_ari_events_event_websocket_ws_established_cb;
- res |= ast_websocket_server_add_protocol2(events.ws_server, protocol);
+ protocol = ast_websocket_sub_protocol_alloc("ari");
+ if (!protocol) {
+ ao2_ref(events.ws_server, -1);
+ events.ws_server = NULL;
+ ast_ari_websocket_events_event_websocket_dtor();
+ return AST_MODULE_LOAD_DECLINE;
}
+ protocol->session_attempted = ast_ari_events_event_websocket_ws_attempted_cb;
+ protocol->session_established = ast_ari_events_event_websocket_ws_established_cb;
+ res |= ast_websocket_server_add_protocol2(events.ws_server, protocol);
- stasis_app_ref();
res |= ast_ari_add_handler(&events);
if (res) {
unload_module();
diff --git a/res/res_ari_mailboxes.c b/res/res_ari_mailboxes.c
index 6469f936e..9761836a0 100644
--- a/res/res_ari_mailboxes.c
+++ b/res/res_ari_mailboxes.c
@@ -330,7 +330,6 @@ static struct stasis_rest_handlers mailboxes = {
static int unload_module(void)
{
ast_ari_remove_handler(&mailboxes);
- stasis_app_unref();
return 0;
}
@@ -338,10 +337,7 @@ static int load_module(void)
{
int res = 0;
- CHECK_ARI_MODULE_LOADED();
-
- stasis_app_ref();
res |= ast_ari_add_handler(&mailboxes);
if (res) {
unload_module();
diff --git a/res/res_ari_playbacks.c b/res/res_ari_playbacks.c
index 0148a7400..9611717a4 100644
--- a/res/res_ari_playbacks.c
+++ b/res/res_ari_playbacks.c
@@ -282,7 +282,6 @@ static struct stasis_rest_handlers playbacks = {
static int unload_module(void)
{
ast_ari_remove_handler(&playbacks);
- stasis_app_unref();
return 0;
}
@@ -290,10 +289,7 @@ static int load_module(void)
{
int res = 0;
- CHECK_ARI_MODULE_LOADED();
-
- stasis_app_ref();
res |= ast_ari_add_handler(&playbacks);
if (res) {
unload_module();
diff --git a/res/res_ari_recordings.c b/res/res_ari_recordings.c
index 531ff6574..39864bcc8 100644
--- a/res/res_ari_recordings.c
+++ b/res/res_ari_recordings.c
@@ -866,7 +866,6 @@ static struct stasis_rest_handlers recordings = {
static int unload_module(void)
{
ast_ari_remove_handler(&recordings);
- stasis_app_unref();
return 0;
}
@@ -874,10 +873,7 @@ static int load_module(void)
{
int res = 0;
- CHECK_ARI_MODULE_LOADED();
-
- stasis_app_ref();
res |= ast_ari_add_handler(&recordings);
if (res) {
unload_module();
diff --git a/res/res_ari_sounds.c b/res/res_ari_sounds.c
index 5c27ebd92..b9c9bdfac 100644
--- a/res/res_ari_sounds.c
+++ b/res/res_ari_sounds.c
@@ -212,7 +212,6 @@ static struct stasis_rest_handlers sounds = {
static int unload_module(void)
{
ast_ari_remove_handler(&sounds);
- stasis_app_unref();
return 0;
}
@@ -220,10 +219,7 @@ static int load_module(void)
{
int res = 0;
- CHECK_ARI_MODULE_LOADED();
-
- stasis_app_ref();
res |= ast_ari_add_handler(&sounds);
if (res) {
unload_module();
diff --git a/res/res_config_curl.c b/res/res_config_curl.c
index 213209720..03f0338cc 100644
--- a/res/res_config_curl.c
+++ b/res/res_config_curl.c
@@ -637,20 +637,6 @@ static int unload_module(void)
static int load_module(void)
{
- if (!ast_module_check("res_curl.so")) {
- if (ast_load_resource("res_curl.so") != AST_MODULE_LOAD_SUCCESS) {
- ast_log(LOG_ERROR, "Cannot load res_curl, so res_config_curl cannot be loaded\n");
- return AST_MODULE_LOAD_DECLINE;
- }
- }
-
- 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);
@@ -664,4 +650,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Realtime Curl configu
.unload = unload_module,
.reload = reload_module,
.load_pri = AST_MODPRI_REALTIME_DRIVER,
+ .requires = "res_curl,func_curl",
);
diff --git a/res/res_crypto.c b/res/res_crypto.c
index 8f97ce9f8..4f8f2cb6e 100644
--- a/res/res_crypto.c
+++ b/res/res_crypto.c
@@ -651,8 +651,6 @@ static int load_module(void)
crypto_load(-1, -1);
}
- /* This prevents dlclose from ever running, but allows CLI cleanup at shutdown. */
- ast_module_shutdown_ref(ast_module_info->self);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -663,7 +661,6 @@ static int unload_module(void)
return 0;
}
-/* needs usecount semantics defined */
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Cryptographic Digital Signatures",
.support_level = AST_MODULE_SUPPORT_CORE,
.load = load_module,
diff --git a/res/res_curl.c b/res/res_curl.c
index e0f753cc3..3dc7c2f03 100644
--- a/res/res_curl.c
+++ b/res/res_curl.c
@@ -46,33 +46,11 @@
#include "asterisk/module.h"
-static const char *dependents[] = {
- "func_curl.so",
- "res_config_curl.so",
- "res_http_media_cache.so",
-};
-
static int unload_module(void)
{
- int res = 0;
- size_t i;
-
- /* If the dependent modules are still in memory, forbid unload */
- for (i = 0; i < ARRAY_LEN(dependents); i++) {
- if (ast_module_check(dependents[i])) {
- if (!ast_shutting_down()) {
- ast_log(LOG_WARNING, "%s (dependent module) is still loaded. Cannot unload res_curl.so\n", dependents[i]);
- }
- res = -1;
- }
- }
-
- if (res)
- return -1;
-
curl_global_cleanup();
- return res;
+ return 0;
}
static int load_module(void)
diff --git a/res/res_fax.c b/res/res_fax.c
index 4be5aee75..315f0003b 100644
--- a/res/res_fax.c
+++ b/res/res_fax.c
@@ -978,7 +978,6 @@ int ast_fax_tech_register(struct ast_fax_tech *tech)
AST_RWLIST_WRLOCK(&faxmodules);
AST_RWLIST_INSERT_TAIL(&faxmodules, fax, list);
AST_RWLIST_UNLOCK(&faxmodules);
- ast_module_ref(ast_module_info->self);
ast_verb(3, "Registered handler for '%s' (%s)\n", fax->tech->type, fax->tech->description);
@@ -998,7 +997,6 @@ void ast_fax_tech_unregister(struct ast_fax_tech *tech)
continue;
}
AST_RWLIST_REMOVE_CURRENT(list);
- ast_module_unref(ast_module_info->self);
ast_free(fax);
ast_verb(4, "Unregistered FAX module type '%s'\n", tech->type);
break;
diff --git a/res/res_hep_pjsip.c b/res/res_hep_pjsip.c
index ff0267501..be2f6eab0 100644
--- a/res/res_hep_pjsip.c
+++ b/res/res_hep_pjsip.c
@@ -232,10 +232,8 @@ static pjsip_module logging_module = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
- if (!ast_module_check("res_hep.so") || !hepv3_is_loaded()) {
- ast_log(AST_LOG_WARNING, "res_hep is not loaded or running; declining module load\n");
+ if (!hepv3_is_loaded()) {
+ ast_log(AST_LOG_WARNING, "res_hep is disabled; declining module load\n");
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_hep_rtcp.c b/res/res_hep_rtcp.c
index 199c8164d..c3abbc164 100644
--- a/res/res_hep_rtcp.c
+++ b/res/res_hep_rtcp.c
@@ -157,8 +157,8 @@ static void rtp_topic_handler(void *data, struct stasis_subscription *sub, struc
static int load_module(void)
{
- if (!ast_module_check("res_hep.so") || !hepv3_is_loaded()) {
- ast_log(AST_LOG_WARNING, "res_hep is not loaded or running; declining module load\n");
+ if (!hepv3_is_loaded()) {
+ ast_log(AST_LOG_WARNING, "res_hep is disabled; declining module load\n");
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_http_media_cache.c b/res/res_http_media_cache.c
index 918686e8a..eba7ecc61 100644
--- a/res/res_http_media_cache.c
+++ b/res/res_http_media_cache.c
@@ -441,4 +441,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "HTTP Media Cache Backend
.support_level = AST_MODULE_SUPPORT_CORE,
.load = load_module,
.unload = unload_module,
+ .requires = "res_curl",
);
diff --git a/res/res_http_websocket.c b/res/res_http_websocket.c
index 86a154787..bcad1c39c 100644
--- a/res/res_http_websocket.c
+++ b/res/res_http_websocket.c
@@ -131,24 +131,18 @@ struct ast_websocket_server {
struct ao2_container *protocols; /*!< Container for registered protocols */
};
-static void websocket_server_internal_dtor(void *obj)
+static void websocket_server_dtor(void *obj)
{
struct ast_websocket_server *server = obj;
ao2_cleanup(server->protocols);
server->protocols = NULL;
}
-static void websocket_server_dtor(void *obj)
-{
- websocket_server_internal_dtor(obj);
- ast_module_unref(ast_module_info->self);
-}
-
-static struct ast_websocket_server *websocket_server_create_impl(void (*dtor)(void *))
+static struct ast_websocket_server *websocket_server_create_impl(void)
{
RAII_VAR(struct ast_websocket_server *, server, NULL, ao2_cleanup);
- server = ao2_alloc(sizeof(*server), dtor);
+ server = ao2_alloc(sizeof(*server), websocket_server_dtor);
if (!server) {
return NULL;
}
@@ -164,13 +158,12 @@ static struct ast_websocket_server *websocket_server_create_impl(void (*dtor)(vo
static struct ast_websocket_server *websocket_server_internal_create(void)
{
- return websocket_server_create_impl(websocket_server_internal_dtor);
+ return websocket_server_create_impl();
}
struct ast_websocket_server *AST_OPTIONAL_API_NAME(ast_websocket_server_create)(void)
{
- ast_module_ref(ast_module_info->self);
- return websocket_server_create_impl(websocket_server_dtor);
+ return websocket_server_create_impl();
}
/*! \brief Destructor function for sessions */
@@ -997,11 +990,7 @@ static int websocket_add_protocol_internal(const char *name, ast_websocket_callb
int AST_OPTIONAL_API_NAME(ast_websocket_add_protocol)(const char *name, ast_websocket_callback callback)
{
- int res = websocket_add_protocol_internal(name, callback);
- if (res == 0) {
- ast_module_ref(ast_module_info->self);
- }
- return res;
+ return websocket_add_protocol_internal(name, callback);
}
int AST_OPTIONAL_API_NAME(ast_websocket_add_protocol2)(struct ast_websocket_protocol *protocol)
@@ -1016,7 +1005,6 @@ int AST_OPTIONAL_API_NAME(ast_websocket_add_protocol2)(struct ast_websocket_prot
return -1;
}
- ast_module_ref(ast_module_info->self);
return 0;
}
@@ -1031,11 +1019,7 @@ static int websocket_remove_protocol_internal(const char *name, ast_websocket_ca
int AST_OPTIONAL_API_NAME(ast_websocket_remove_protocol)(const char *name, ast_websocket_callback callback)
{
- int res = websocket_remove_protocol_internal(name, callback);
- if (res == 0) {
- ast_module_unref(ast_module_info->self);
- }
- return res;
+ return websocket_remove_protocol_internal(name, callback);
}
/*! \brief Parse the given uri into a path and remote address.
@@ -1457,9 +1441,6 @@ static int load_module(void)
ast_http_uri_link(&websocketuri);
websocket_add_protocol_internal("echo", websocket_echo_callback);
- /* For Optional API. */
- ast_module_shutdown_ref(AST_MODULE_SELF);
-
return 0;
}
diff --git a/res/res_monitor.c b/res/res_monitor.c
index 9dcbdbe62..c67b37edf 100644
--- a/res/res_monitor.c
+++ b/res/res_monitor.c
@@ -985,9 +985,6 @@ static int load_module(void)
ast_manager_register_xml("PauseMonitor", EVENT_FLAG_CALL, pause_monitor_action);
ast_manager_register_xml("UnpauseMonitor", EVENT_FLAG_CALL, unpause_monitor_action);
- /* For Optional API. */
- ast_module_shutdown_ref(AST_MODULE_SELF);
-
return AST_MODULE_LOAD_SUCCESS;
}
diff --git a/res/res_mwi_external.c b/res/res_mwi_external.c
index d79799196..82c74b990 100644
--- a/res/res_mwi_external.c
+++ b/res/res_mwi_external.c
@@ -81,16 +81,6 @@ struct ast_mwi_mailbox_object {
static struct ast_sorcery *mwi_sorcery;
-void ast_mwi_external_ref(void)
-{
- ast_module_ref(ast_module_info->self);
-}
-
-void ast_mwi_external_unref(void)
-{
- ast_module_unref(ast_module_info->self);
-}
-
/*!
* \internal
* \brief Post an update event to the MWI counts.
diff --git a/res/res_mwi_external_ami.c b/res/res_mwi_external_ami.c
index 8639fad40..e4d5054e2 100644
--- a/res/res_mwi_external_ami.c
+++ b/res/res_mwi_external_ami.c
@@ -342,8 +342,6 @@ static int unload_module(void)
ast_manager_unregister("MWIDelete");
ast_manager_unregister("MWIUpdate");
- /* Must be done last */
- ast_mwi_external_unref();
return 0;
}
@@ -351,9 +349,6 @@ static int load_module(void)
{
int res;
- /* Must be done first */
- ast_mwi_external_ref();
-
res = 0;
res |= ast_manager_register_xml("MWIGet", EVENT_FLAG_CALL | EVENT_FLAG_REPORTING, mwi_mailbox_get);
res |= ast_manager_register_xml("MWIDelete", EVENT_FLAG_CALL, mwi_mailbox_delete);
diff --git a/res/res_pjproject.c b/res/res_pjproject.c
index 6137898a3..f506a62fd 100644
--- a/res/res_pjproject.c
+++ b/res/res_pjproject.c
@@ -280,16 +280,6 @@ void ast_pjproject_log_intercept_end(void)
ast_mutex_unlock(&pjproject_log_intercept_lock);
}
-void ast_pjproject_ref(void)
-{
- ast_module_ref(ast_module_info->self);
-}
-
-void ast_pjproject_unref(void)
-{
- ast_module_unref(ast_module_info->self);
-}
-
static char *handle_pjproject_show_buildopts(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
int i;
diff --git a/res/res_pjsip.c b/res/res_pjsip.c
index 05f92f268..f7154aac9 100644
--- a/res/res_pjsip.c
+++ b/res/res_pjsip.c
@@ -2716,7 +2716,7 @@ static pj_sockaddr host_ip_ipv6;
/*! Local host address for IPv6 (string form) */
static char host_ip_ipv6_string[PJ_INET6_ADDRSTRLEN];
-static int register_service_noref(void *data)
+static int register_service(void *data)
{
pjsip_module **module = data;
if (!ast_pjsip_endpoint) {
@@ -2731,23 +2731,12 @@ static int register_service_noref(void *data)
return 0;
}
-int internal_sip_register_service(pjsip_module *module)
+int ast_sip_register_service(pjsip_module *module)
{
- return ast_sip_push_task_synchronous(NULL, register_service_noref, &module);
+ return ast_sip_push_task_synchronous(NULL, register_service, &module);
}
-int __ast_sip_register_service(pjsip_module *module, const char *file, int line, const char *func)
-{
- int res;
-
- if (!(res = ast_sip_push_task_synchronous(NULL, register_service_noref, &module))) {
- __ast_module_ref(ast_module_info->self, file, line, func);
- }
-
- return res;
-}
-
-static int unregister_service_noref(void *data)
+static int unregister_service(void *data)
{
pjsip_module **module = data;
if (!ast_pjsip_endpoint) {
@@ -2758,16 +2747,9 @@ static int unregister_service_noref(void *data)
return 0;
}
-int internal_sip_unregister_service(pjsip_module *module)
+void ast_sip_unregister_service(pjsip_module *module)
{
- return ast_sip_push_task_synchronous(NULL, unregister_service_noref, &module);
-}
-
-void __ast_sip_unregister_service(pjsip_module *module, const char *file, int line, const char *func)
-{
- if (!ast_sip_push_task_synchronous(NULL, unregister_service_noref, &module)) {
- __ast_module_unref(ast_module_info->self, file, line, func);
- }
+ ast_sip_push_task_synchronous(NULL, unregister_service, &module);
}
static struct ast_sip_authenticator *registered_authenticator;
@@ -2780,7 +2762,7 @@ int ast_sip_register_authenticator(struct ast_sip_authenticator *auth)
}
registered_authenticator = auth;
ast_debug(1, "Registered SIP authenticator module %p\n", auth);
- ast_module_ref(ast_module_info->self);
+
return 0;
}
@@ -2793,7 +2775,6 @@ void ast_sip_unregister_authenticator(struct ast_sip_authenticator *auth)
}
registered_authenticator = NULL;
ast_debug(1, "Unregistered SIP authenticator %p\n", auth);
- ast_module_unref(ast_module_info->self);
}
int ast_sip_requires_authentication(struct ast_sip_endpoint *endpoint, pjsip_rx_data *rdata)
@@ -2826,7 +2807,7 @@ int ast_sip_register_outbound_authenticator(struct ast_sip_outbound_authenticato
}
registered_outbound_authenticator = auth;
ast_debug(1, "Registered SIP outbound authenticator module %p\n", auth);
- ast_module_ref(ast_module_info->self);
+
return 0;
}
@@ -2839,7 +2820,6 @@ void ast_sip_unregister_outbound_authenticator(struct ast_sip_outbound_authentic
}
registered_outbound_authenticator = NULL;
ast_debug(1, "Unregistered SIP outbound authenticator %p\n", auth);
- ast_module_unref(ast_module_info->self);
}
int ast_sip_create_request_with_auth(const struct ast_sip_auth_vector *auths, pjsip_rx_data *challenge,
@@ -2881,7 +2861,6 @@ int ast_sip_register_endpoint_identifier_with_name(struct ast_sip_endpoint_ident
if (ast_strlen_zero(name)) {
/* if an identifier has no name then place in front */
AST_RWLIST_INSERT_HEAD(&endpoint_identifiers, id_list_item, list);
- ast_module_ref(ast_module_info->self);
return 0;
}
@@ -2891,7 +2870,6 @@ int ast_sip_register_endpoint_identifier_with_name(struct ast_sip_endpoint_ident
if (ast_strlen_zero(identifier_order)) {
id_list_item->priority = UINT_MAX;
AST_RWLIST_INSERT_TAIL(&endpoint_identifiers, id_list_item, list);
- ast_module_ref(ast_module_info->self);
ast_free(identifier_order);
return 0;
}
@@ -2919,7 +2897,6 @@ int ast_sip_register_endpoint_identifier_with_name(struct ast_sip_endpoint_ident
/* if not in the endpoint_identifier_order list then consider it less in
priority and add it to the end */
AST_RWLIST_INSERT_TAIL(&endpoint_identifiers, id_list_item, list);
- ast_module_ref(ast_module_info->self);
ast_free(identifier_order);
return 0;
}
@@ -2937,7 +2914,6 @@ int ast_sip_register_endpoint_identifier_with_name(struct ast_sip_endpoint_ident
}
AST_RWLIST_TRAVERSE_SAFE_END;
- ast_module_ref(ast_module_info->self);
ast_free(identifier_order);
return 0;
}
@@ -2956,7 +2932,6 @@ void ast_sip_unregister_endpoint_identifier(struct ast_sip_endpoint_identifier *
AST_RWLIST_REMOVE_CURRENT(list);
ast_free(iter);
ast_debug(1, "Unregistered endpoint identifier %p\n", identifier);
- ast_module_unref(ast_module_info->self);
break;
}
}
@@ -3099,23 +3074,17 @@ static struct ast_cli_entry cli_commands[] = {
AST_RWLIST_HEAD_STATIC(endpoint_formatters, ast_sip_endpoint_formatter);
-void internal_sip_register_endpoint_formatter(struct ast_sip_endpoint_formatter *obj)
+void ast_sip_register_endpoint_formatter(struct ast_sip_endpoint_formatter *obj)
{
SCOPED_LOCK(lock, &endpoint_formatters, AST_RWLIST_WRLOCK, AST_RWLIST_UNLOCK);
AST_RWLIST_INSERT_TAIL(&endpoint_formatters, obj, next);
}
-int ast_sip_register_endpoint_formatter(struct ast_sip_endpoint_formatter *obj)
-{
- internal_sip_register_endpoint_formatter(obj);
- ast_module_ref(ast_module_info->self);
- return 0;
-}
-
-int internal_sip_unregister_endpoint_formatter(struct ast_sip_endpoint_formatter *obj)
+void ast_sip_unregister_endpoint_formatter(struct ast_sip_endpoint_formatter *obj)
{
struct ast_sip_endpoint_formatter *i;
SCOPED_LOCK(lock, &endpoint_formatters, AST_RWLIST_WRLOCK, AST_RWLIST_UNLOCK);
+
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&endpoint_formatters, i, next) {
if (i == obj) {
AST_RWLIST_REMOVE_CURRENT(next);
@@ -3123,14 +3092,6 @@ int internal_sip_unregister_endpoint_formatter(struct ast_sip_endpoint_formatter
}
}
AST_RWLIST_TRAVERSE_SAFE_END;
- return i == obj ? 0 : -1;
-}
-
-void ast_sip_unregister_endpoint_formatter(struct ast_sip_endpoint_formatter *obj)
-{
- if (!internal_sip_unregister_endpoint_formatter(obj)) {
- ast_module_unref(ast_module_info->self);
- }
}
int ast_sip_format_endpoint_ami(struct ast_sip_endpoint *endpoint,
@@ -3817,7 +3778,7 @@ int ast_sip_create_request(const char *method, struct pjsip_dialog *dlg,
AST_RWLIST_HEAD_STATIC(supplements, ast_sip_supplement);
-void internal_sip_register_supplement(struct ast_sip_supplement *supplement)
+void ast_sip_register_supplement(struct ast_sip_supplement *supplement)
{
struct ast_sip_supplement *iter;
int inserted = 0;
@@ -3837,39 +3798,18 @@ void internal_sip_register_supplement(struct ast_sip_supplement *supplement)
}
}
-int __ast_sip_register_supplement(struct ast_sip_supplement *supplement,
- const char *file, int line, const char *func)
-{
- internal_sip_register_supplement(supplement);
- __ast_module_ref(ast_module_info->self, file, line, func);
-
- return 0;
-}
-
-int internal_sip_unregister_supplement(struct ast_sip_supplement *supplement)
+void ast_sip_unregister_supplement(struct ast_sip_supplement *supplement)
{
struct ast_sip_supplement *iter;
SCOPED_LOCK(lock, &supplements, AST_RWLIST_WRLOCK, AST_RWLIST_UNLOCK);
- int res = -1;
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&supplements, iter, next) {
if (supplement == iter) {
AST_RWLIST_REMOVE_CURRENT(next);
- res = 0;
break;
}
}
AST_RWLIST_TRAVERSE_SAFE_END;
-
- return res;
-}
-
-void __ast_sip_unregister_supplement(struct ast_sip_supplement *supplement,
- const char *file, int line, const char *func)
-{
- if (!internal_sip_unregister_supplement(supplement)) {
- __ast_module_unref(ast_module_info->self, file, line, func);
- }
}
static int send_in_dialog_request(pjsip_tx_data *tdata, struct pjsip_dialog *dlg)
@@ -4999,7 +4939,7 @@ static int unload_pjsip(void *data)
ast_res_pjsip_destroy_configuration();
ast_sip_destroy_system();
ast_sip_destroy_global_headers();
- internal_sip_unregister_service(&supplement_module);
+ ast_sip_unregister_service(&supplement_module);
ast_sip_destroy_transport_events();
}
@@ -5099,8 +5039,6 @@ static int load_module(void)
{
struct ast_threadpool_options options;
- CHECK_PJPROJECT_MODULE_LOADED();
-
/* pjproject and config_system need to be initialized before all else */
if (pj_init() != PJ_SUCCESS) {
return AST_MODULE_LOAD_DECLINE;
@@ -5166,7 +5104,7 @@ static int load_module(void)
goto error;
}
- if (internal_sip_register_service(&supplement_module)) {
+ if (ast_sip_register_service(&supplement_module)) {
ast_log(LOG_ERROR, "Failed to initialize supplement hooks. Aborting load\n");
goto error;
}
@@ -5183,8 +5121,6 @@ static int load_module(void)
AST_TEST_REGISTER(xml_sanitization_end_null);
AST_TEST_REGISTER(xml_sanitization_exceeds_buffer);
- ast_pjproject_ref();
-
return AST_MODULE_LOAD_SUCCESS;
error:
@@ -5226,8 +5162,6 @@ static int unload_module(void)
serializer_pool_shutdown();
ast_threadpool_shutdown(sip_threadpool);
- ast_pjproject_unref();
-
return 0;
}
diff --git a/res/res_pjsip/config_auth.c b/res/res_pjsip/config_auth.c
index 47326815b..b1bf9c422 100644
--- a/res/res_pjsip/config_auth.c
+++ b/res/res_pjsip/config_auth.c
@@ -374,7 +374,7 @@ int ast_sip_initialize_sorcery_auth(void)
ast_sorcery_object_field_register_custom(sorcery, SIP_SORCERY_AUTH_TYPE, "auth_type",
"userpass", auth_type_handler, auth_type_to_str, NULL, 0, 0);
- internal_sip_register_endpoint_formatter(&endpoint_auth_formatter);
+ ast_sip_register_endpoint_formatter(&endpoint_auth_formatter);
cli_formatter = ao2_alloc(sizeof(struct ast_sip_cli_formatter_entry), NULL);
if (!cli_formatter) {
@@ -403,7 +403,7 @@ int ast_sip_destroy_sorcery_auth(void)
{
ast_cli_unregister_multiple(cli_commands, ARRAY_LEN(cli_commands));
ast_sip_unregister_cli_formatter(cli_formatter);
- internal_sip_unregister_endpoint_formatter(&endpoint_auth_formatter);
+ ast_sip_unregister_endpoint_formatter(&endpoint_auth_formatter);
ast_manager_unregister("PJSIPShowAuths");
diff --git a/res/res_pjsip/config_transport.c b/res/res_pjsip/config_transport.c
index 63bf11812..d08b33b78 100644
--- a/res/res_pjsip/config_transport.c
+++ b/res/res_pjsip/config_transport.c
@@ -1435,7 +1435,7 @@ int ast_sip_initialize_sorcery_transport(void)
ast_sorcery_object_field_register(sorcery, "transport", "allow_reload", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_transport, allow_reload));
ast_sorcery_object_field_register(sorcery, "transport", "symmetric_transport", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_transport, symmetric_transport));
- internal_sip_register_endpoint_formatter(&endpoint_transport_formatter);
+ ast_sip_register_endpoint_formatter(&endpoint_transport_formatter);
cli_formatter = ao2_alloc(sizeof(struct ast_sip_cli_formatter_entry), NULL);
if (!cli_formatter) {
@@ -1465,7 +1465,7 @@ int ast_sip_destroy_sorcery_transport(void)
ast_cli_unregister_multiple(cli_commands, ARRAY_LEN(cli_commands));
ast_sip_unregister_cli_formatter(cli_formatter);
- internal_sip_unregister_endpoint_formatter(&endpoint_transport_formatter);
+ ast_sip_unregister_endpoint_formatter(&endpoint_transport_formatter);
ao2_ref(transport_states, -1);
transport_states = NULL;
diff --git a/res/res_pjsip/include/res_pjsip_private.h b/res/res_pjsip/include/res_pjsip_private.h
index 5ce3c6faf..7fafd8007 100644
--- a/res/res_pjsip/include/res_pjsip_private.h
+++ b/res/res_pjsip/include/res_pjsip_private.h
@@ -314,58 +314,10 @@ int sip_cli_print_global(struct ast_sip_cli_context *context);
*/
int sip_cli_print_system(struct ast_sip_cli_context *context);
-/*!
- * \internal
- * \brief Used by res_pjsip.so to register a service without adding a self reference
- */
-int internal_sip_register_service(pjsip_module *module);
-
-/*!
- * \internal
- * \brief Used by res_pjsip.so to unregister a service without removing a self reference
- */
-int internal_sip_unregister_service(pjsip_module *module);
-
-/*!
- * \internal
- * \brief Used by res_pjsip.so to register a supplement without adding a self reference
- */
-void internal_sip_register_supplement(struct ast_sip_supplement *supplement);
-
-/*!
- * \internal
- * \brief Used by res_pjsip.so to unregister a supplement without removing a self reference
- */
-int internal_sip_unregister_supplement(struct ast_sip_supplement *supplement);
-
-/*!
- * \internal
- * \brief Used by res_pjsip.so to register an endpoint formatter without adding a self reference
- */
-void internal_sip_register_endpoint_formatter(struct ast_sip_endpoint_formatter *obj);
-
-/*!
- * \internal
- * \brief Used by res_pjsip.so to unregister a endpoint formatter without removing a self reference
- */
-int internal_sip_unregister_endpoint_formatter(struct ast_sip_endpoint_formatter *obj);
-
struct ast_sip_session_supplement;
/*!
* \internal
- * \brief Used by res_pjsip.so to register a session supplement without adding a self reference
- */
-void internal_sip_session_register_supplement(struct ast_sip_session_supplement *supplement);
-
-/*!
- * \internal
- * \brief Used by res_pjsip.so to unregister a session supplement without removing a self reference
- */
-int internal_sip_session_unregister_supplement(struct ast_sip_session_supplement *supplement);
-
-/*!
- * \internal
* \brief Finds or creates contact_status for a contact
*/
struct ast_sip_contact_status *ast_res_pjsip_find_or_create_contact_status(const struct ast_sip_contact *contact);
diff --git a/res/res_pjsip/location.c b/res/res_pjsip/location.c
index eb9e58870..84f73c742 100644
--- a/res/res_pjsip/location.c
+++ b/res/res_pjsip/location.c
@@ -1346,7 +1346,7 @@ int ast_sip_initialize_sorcery_location(void)
ast_sorcery_object_field_register(sorcery, "aor", "outbound_proxy", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_aor, outbound_proxy));
ast_sorcery_object_field_register(sorcery, "aor", "support_path", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_aor, support_path));
- internal_sip_register_endpoint_formatter(&endpoint_aor_formatter);
+ ast_sip_register_endpoint_formatter(&endpoint_aor_formatter);
contact_formatter = ao2_alloc(sizeof(struct ast_sip_cli_formatter_entry), NULL);
if (!contact_formatter) {
@@ -1402,7 +1402,7 @@ int ast_sip_destroy_sorcery_location(void)
ast_sip_unregister_cli_formatter(aor_formatter);
ast_manager_unregister("PJSIPShowAors");
- internal_sip_unregister_endpoint_formatter(&endpoint_aor_formatter);
+ ast_sip_unregister_endpoint_formatter(&endpoint_aor_formatter);
return 0;
}
diff --git a/res/res_pjsip/pjsip_distributor.c b/res/res_pjsip/pjsip_distributor.c
index b4828d89f..c239c1a79 100644
--- a/res/res_pjsip/pjsip_distributor.c
+++ b/res/res_pjsip/pjsip_distributor.c
@@ -1243,15 +1243,15 @@ int ast_sip_initialize_distributor(void)
return -1;
}
- if (internal_sip_register_service(&distributor_mod)) {
+ if (ast_sip_register_service(&distributor_mod)) {
ast_sip_destroy_distributor();
return -1;
}
- if (internal_sip_register_service(&endpoint_mod)) {
+ if (ast_sip_register_service(&endpoint_mod)) {
ast_sip_destroy_distributor();
return -1;
}
- if (internal_sip_register_service(&auth_mod)) {
+ if (ast_sip_register_service(&auth_mod)) {
ast_sip_destroy_distributor();
return -1;
}
@@ -1282,9 +1282,9 @@ void ast_sip_destroy_distributor(void)
ast_cli_unregister_multiple(cli_commands, ARRAY_LEN(cli_commands));
ast_sip_unregister_cli_formatter(unid_formatter);
- internal_sip_unregister_service(&auth_mod);
- internal_sip_unregister_service(&endpoint_mod);
- internal_sip_unregister_service(&distributor_mod);
+ ast_sip_unregister_service(&auth_mod);
+ ast_sip_unregister_service(&endpoint_mod);
+ ast_sip_unregister_service(&distributor_mod);
ao2_global_obj_release(artificial_auth);
ao2_cleanup(artificial_endpoint);
diff --git a/res/res_pjsip/pjsip_global_headers.c b/res/res_pjsip/pjsip_global_headers.c
index 4de28b586..52075ae5c 100644
--- a/res/res_pjsip/pjsip_global_headers.c
+++ b/res/res_pjsip/pjsip_global_headers.c
@@ -165,7 +165,7 @@ void ast_sip_initialize_global_headers(void)
AST_RWLIST_HEAD_INIT(&request_headers);
AST_RWLIST_HEAD_INIT(&response_headers);
- internal_sip_register_service(&global_header_mod);
+ ast_sip_register_service(&global_header_mod);
}
static void destroy_headers(struct header_list *headers)
@@ -183,5 +183,5 @@ void ast_sip_destroy_global_headers(void)
destroy_headers(&request_headers);
destroy_headers(&response_headers);
- internal_sip_unregister_service(&global_header_mod);
+ ast_sip_unregister_service(&global_header_mod);
}
diff --git a/res/res_pjsip/pjsip_message_filter.c b/res/res_pjsip/pjsip_message_filter.c
index 427aec740..f948c4449 100644
--- a/res/res_pjsip/pjsip_message_filter.c
+++ b/res/res_pjsip/pjsip_message_filter.c
@@ -517,24 +517,24 @@ static pj_bool_t filter_on_rx_message(pjsip_rx_data *rdata)
void ast_res_pjsip_cleanup_message_filter(void)
{
- internal_sip_unregister_service(&filter_module_tsx);
- internal_sip_unregister_service(&filter_module_transport);
- internal_sip_unregister_supplement(&filter_supplement);
- internal_sip_session_unregister_supplement(&filter_session_supplement);
+ ast_sip_unregister_service(&filter_module_tsx);
+ ast_sip_unregister_service(&filter_module_transport);
+ ast_sip_unregister_supplement(&filter_supplement);
+ ast_sip_session_unregister_supplement(&filter_session_supplement);
}
int ast_res_pjsip_init_message_filter(void)
{
- internal_sip_session_register_supplement(&filter_session_supplement);
- internal_sip_register_supplement(&filter_supplement);
+ ast_sip_session_register_supplement(&filter_session_supplement);
+ ast_sip_register_supplement(&filter_supplement);
- if (internal_sip_register_service(&filter_module_transport)) {
+ if (ast_sip_register_service(&filter_module_transport)) {
ast_log(LOG_ERROR, "Could not register message filter module for incoming and outgoing requests\n");
ast_res_pjsip_cleanup_message_filter();
return -1;
}
- if (internal_sip_register_service(&filter_module_tsx)) {
+ if (ast_sip_register_service(&filter_module_tsx)) {
ast_log(LOG_ERROR, "Could not register message filter module for incoming and outgoing requests\n");
ast_res_pjsip_cleanup_message_filter();
return -1;
diff --git a/res/res_pjsip/pjsip_options.c b/res/res_pjsip/pjsip_options.c
index 3465eae34..4ae1f31d1 100644
--- a/res/res_pjsip/pjsip_options.c
+++ b/res/res_pjsip/pjsip_options.c
@@ -1562,7 +1562,7 @@ int ast_res_pjsip_init_options_handling(int reload)
return -1;
}
- internal_sip_register_endpoint_formatter(&contact_status_formatter);
+ ast_sip_register_endpoint_formatter(&contact_status_formatter);
ast_manager_register_xml("PJSIPQualify", EVENT_FLAG_SYSTEM | EVENT_FLAG_REPORTING, ami_sip_qualify);
ast_manager_register_xml("PJSIPShowContacts", EVENT_FLAG_SYSTEM, ami_show_contacts);
ast_cli_register_multiple(cli_options, ARRAY_LEN(cli_options));
@@ -1578,7 +1578,7 @@ void ast_res_pjsip_cleanup_options_handling(void)
ast_cli_unregister_multiple(cli_options, ARRAY_LEN(cli_options));
ast_manager_unregister("PJSIPQualify");
ast_manager_unregister("PJSIPShowContacts");
- internal_sip_unregister_endpoint_formatter(&contact_status_formatter);
+ ast_sip_unregister_endpoint_formatter(&contact_status_formatter);
ast_sorcery_observer_remove(ast_sip_get_sorcery(), "aor", &observer_callbacks_options);
pjsip_endpt_unregister_module(ast_sip_get_pjsip_endpoint(), &options_module);
diff --git a/res/res_pjsip/pjsip_session.c b/res/res_pjsip/pjsip_session.c
index 153561ce7..f3f3a4d87 100644
--- a/res/res_pjsip/pjsip_session.c
+++ b/res/res_pjsip/pjsip_session.c
@@ -32,7 +32,7 @@
AST_RWLIST_HEAD_STATIC(session_supplements, ast_sip_session_supplement);
-void internal_sip_session_register_supplement(struct ast_sip_session_supplement *supplement)
+void ast_sip_session_register_supplement(struct ast_sip_session_supplement *supplement)
{
struct ast_sip_session_supplement *iter;
int inserted = 0;
@@ -56,39 +56,18 @@ void internal_sip_session_register_supplement(struct ast_sip_session_supplement
}
}
-int __ast_sip_session_register_supplement(struct ast_sip_session_supplement *supplement,
- const char *file, int line, const char *func)
-{
- internal_sip_session_register_supplement(supplement);
- __ast_module_ref(AST_MODULE_SELF, file, line, func);
-
- return 0;
-}
-
-int internal_sip_session_unregister_supplement(struct ast_sip_session_supplement *supplement)
+void ast_sip_session_unregister_supplement(struct ast_sip_session_supplement *supplement)
{
struct ast_sip_session_supplement *iter;
- int res = -1;
SCOPED_LOCK(lock, &session_supplements, AST_RWLIST_WRLOCK, AST_RWLIST_UNLOCK);
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&session_supplements, iter, next) {
if (supplement == iter) {
AST_RWLIST_REMOVE_CURRENT(next);
- res = 0;
break;
}
}
AST_RWLIST_TRAVERSE_SAFE_END;
-
- return res;
-}
-
-void __ast_sip_session_unregister_supplement(struct ast_sip_session_supplement *supplement,
- const char *file, int line, const char *func)
-{
- if (!internal_sip_session_unregister_supplement(supplement)) {
- __ast_module_unref(AST_MODULE_SELF, file, line, func);
- }
}
static struct ast_sip_session_supplement *supplement_dup(const struct ast_sip_session_supplement *src)
diff --git a/res/res_pjsip_acl.c b/res/res_pjsip_acl.c
index 926986422..8caf70344 100644
--- a/res/res_pjsip_acl.c
+++ b/res/res_pjsip_acl.c
@@ -282,8 +282,6 @@ static void *acl_alloc(const char *name)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
ast_sorcery_apply_config(ast_sip_get_sorcery(), SIP_SORCERY_ACL_TYPE);
ast_sorcery_apply_default(ast_sip_get_sorcery(), SIP_SORCERY_ACL_TYPE,
"config", "pjsip.conf,criteria=type=acl");
diff --git a/res/res_pjsip_authenticator_digest.c b/res/res_pjsip_authenticator_digest.c
index b6f2b74ff..518ef73bb 100644
--- a/res/res_pjsip_authenticator_digest.c
+++ b/res/res_pjsip_authenticator_digest.c
@@ -524,8 +524,6 @@ static int reload_module(void)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
if (build_entity_id()) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_caller_id.c b/res/res_pjsip_caller_id.c
index 16731479e..f15a66c05 100644
--- a/res/res_pjsip_caller_id.c
+++ b/res/res_pjsip_caller_id.c
@@ -746,8 +746,6 @@ static struct ast_sip_session_supplement caller_id_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
ast_sip_session_register_supplement(&caller_id_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
diff --git a/res/res_pjsip_dialog_info_body_generator.c b/res/res_pjsip_dialog_info_body_generator.c
index 866ea9df8..a13995fac 100644
--- a/res/res_pjsip_dialog_info_body_generator.c
+++ b/res/res_pjsip_dialog_info_body_generator.c
@@ -198,8 +198,6 @@ static struct ast_sip_pubsub_body_generator dialog_info_body_generator = {
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_sip_pubsub_register_body_generator(&dialog_info_body_generator)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_diversion.c b/res/res_pjsip_diversion.c
index 84c42dca8..e82140b72 100644
--- a/res/res_pjsip_diversion.c
+++ b/res/res_pjsip_diversion.c
@@ -411,8 +411,6 @@ static struct ast_sip_session_supplement diversion_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
ast_sip_session_register_supplement(&diversion_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -428,5 +426,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP Add Diversion H
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_dlg_options.c b/res/res_pjsip_dlg_options.c
index 565ad2afc..93e3f228e 100644
--- a/res/res_pjsip_dlg_options.c
+++ b/res/res_pjsip_dlg_options.c
@@ -83,11 +83,8 @@ static struct ast_sip_session_supplement dlg_options_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
+ ast_sip_session_register_supplement(&dlg_options_supplement);
- if (ast_sip_session_register_supplement(&dlg_options_supplement)) {
- return AST_MODULE_LOAD_DECLINE;
- }
return AST_MODULE_LOAD_SUCCESS;
}
diff --git a/res/res_pjsip_dtmf_info.c b/res/res_pjsip_dtmf_info.c
index 68df61785..983498def 100644
--- a/res/res_pjsip_dtmf_info.c
+++ b/res/res_pjsip_dtmf_info.c
@@ -160,8 +160,6 @@ static struct ast_sip_session_supplement dtmf_info_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
ast_sip_session_register_supplement(&dtmf_info_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -177,5 +175,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP DTMF INFO Suppo
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_empty_info.c b/res/res_pjsip_empty_info.c
index c67835ce0..74e5729a5 100644
--- a/res/res_pjsip_empty_info.c
+++ b/res/res_pjsip_empty_info.c
@@ -66,8 +66,6 @@ static struct ast_sip_session_supplement empty_info_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
ast_sip_session_register_supplement(&empty_info_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -83,5 +81,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP Empty INFO Supp
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_endpoint_identifier_anonymous.c b/res/res_pjsip_endpoint_identifier_anonymous.c
index 16662ebd5..918aec553 100644
--- a/res/res_pjsip_endpoint_identifier_anonymous.c
+++ b/res/res_pjsip_endpoint_identifier_anonymous.c
@@ -116,8 +116,6 @@ static struct ast_sip_endpoint_identifier anonymous_identifier = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
ast_sip_register_endpoint_identifier_with_name(&anonymous_identifier, "anonymous");
return AST_MODULE_LOAD_SUCCESS;
}
diff --git a/res/res_pjsip_endpoint_identifier_ip.c b/res/res_pjsip_endpoint_identifier_ip.c
index ee47e4d4e..555d65331 100644
--- a/res/res_pjsip_endpoint_identifier_ip.c
+++ b/res/res_pjsip_endpoint_identifier_ip.c
@@ -717,8 +717,6 @@ static struct ast_sip_cli_formatter_entry *cli_formatter;
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
ast_sorcery_apply_config(ast_sip_get_sorcery(), "res_pjsip_endpoint_identifier_ip");
ast_sorcery_apply_default(ast_sip_get_sorcery(), "identify", "config", "pjsip.conf,criteria=type=identify");
diff --git a/res/res_pjsip_endpoint_identifier_user.c b/res/res_pjsip_endpoint_identifier_user.c
index 1b0c7d99a..e18d2fab3 100644
--- a/res/res_pjsip_endpoint_identifier_user.c
+++ b/res/res_pjsip_endpoint_identifier_user.c
@@ -195,8 +195,6 @@ static struct ast_sip_endpoint_identifier auth_username_identifier = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
ast_sip_register_endpoint_identifier_with_name(&username_identifier, "username");
ast_sip_register_endpoint_identifier_with_name(&auth_username_identifier, "auth_username");
return AST_MODULE_LOAD_SUCCESS;
diff --git a/res/res_pjsip_exten_state.c b/res/res_pjsip_exten_state.c
index e70eba7cd..47ec8b461 100644
--- a/res/res_pjsip_exten_state.c
+++ b/res/res_pjsip_exten_state.c
@@ -959,13 +959,6 @@ static int unload_module(void)
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
- if (!ast_module_check("res_pjsip_outbound_publish.so")) {
- ast_log(LOG_WARNING, "This module requires the 'res_pjsip_outbound_publish.so' module to be loaded\n");
- return AST_MODULE_LOAD_DECLINE;
- }
-
publishers = ao2_container_alloc(PUBLISHER_BUCKETS, exten_state_publisher_hash,
exten_state_publisher_cmp);
if (!publishers) {
diff --git a/res/res_pjsip_header_funcs.c b/res/res_pjsip_header_funcs.c
index 06fba0635..79302632d 100644
--- a/res/res_pjsip_header_funcs.c
+++ b/res/res_pjsip_header_funcs.c
@@ -609,8 +609,6 @@ static struct ast_sip_session_supplement header_funcs_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
ast_sip_session_register_supplement(&header_funcs_supplement);
ast_custom_function_register(&pjsip_header_function);
diff --git a/res/res_pjsip_history.c b/res/res_pjsip_history.c
index 40d26d59d..fa9e27f00 100644
--- a/res/res_pjsip_history.c
+++ b/res/res_pjsip_history.c
@@ -1364,8 +1364,6 @@ static struct ast_cli_entry cli_pjsip[] = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
log_level = ast_logger_register_level("PJSIP_HISTORY");
if (log_level < 0) {
ast_log(LOG_WARNING, "Unable to register history log level\n");
diff --git a/res/res_pjsip_logger.c b/res/res_pjsip_logger.c
index 460b6a34f..49ad6faec 100644
--- a/res/res_pjsip_logger.c
+++ b/res/res_pjsip_logger.c
@@ -231,8 +231,6 @@ static const struct ast_sorcery_observer global_observer = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
if (ast_sorcery_observer_add(ast_sip_get_sorcery(), "global", &global_observer)) {
ast_log(LOG_WARNING, "Unable to add global observer\n");
return AST_MODULE_LOAD_DECLINE;
diff --git a/res/res_pjsip_messaging.c b/res/res_pjsip_messaging.c
index 3739bcf93..cbaed83fb 100644
--- a/res/res_pjsip_messaging.c
+++ b/res/res_pjsip_messaging.c
@@ -805,8 +805,6 @@ static pjsip_module messaging_module = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
if (ast_sip_register_service(&messaging_module) != PJ_SUCCESS) {
return AST_MODULE_LOAD_DECLINE;
}
@@ -849,5 +847,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP Messaging Suppo
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_mwi.c b/res/res_pjsip_mwi.c
index 92dc7dc65..90fdc098c 100644
--- a/res/res_pjsip_mwi.c
+++ b/res/res_pjsip_mwi.c
@@ -1339,8 +1339,6 @@ static int reload(void)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
if (ast_sip_register_subscription_handler(&mwi_handler)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_mwi_body_generator.c b/res/res_pjsip_mwi_body_generator.c
index 65ac60067..29b2ed027 100644
--- a/res/res_pjsip_mwi_body_generator.c
+++ b/res/res_pjsip_mwi_body_generator.c
@@ -97,8 +97,6 @@ static struct ast_sip_pubsub_body_generator mwi_generator = {
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_sip_pubsub_register_body_generator(&mwi_generator)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_nat.c b/res/res_pjsip_nat.c
index 4231a1ec3..1d42805d8 100644
--- a/res/res_pjsip_nat.c
+++ b/res/res_pjsip_nat.c
@@ -357,18 +357,12 @@ static int unload_module(void)
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
if (ast_sip_register_service(&nat_module)) {
ast_log(LOG_ERROR, "Could not register NAT module for incoming and outgoing requests\n");
return AST_MODULE_LOAD_DECLINE;
}
- if (ast_sip_session_register_supplement(&nat_supplement)) {
- ast_log(LOG_ERROR, "Could not register NAT session supplement for incoming and outgoing INVITE requests\n");
- unload_module();
- return AST_MODULE_LOAD_DECLINE;
- }
+ ast_sip_session_register_supplement(&nat_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -378,5 +372,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP NAT Support",
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_notify.c b/res/res_pjsip_notify.c
index 9767c56b5..253cf9ac8 100644
--- a/res/res_pjsip_notify.c
+++ b/res/res_pjsip_notify.c
@@ -987,8 +987,6 @@ static int manager_notify(struct mansession *s, const struct message *m)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
if (aco_info_init(&notify_cfg)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_one_touch_record_info.c b/res/res_pjsip_one_touch_record_info.c
index ef59fca13..50f2a3832 100644
--- a/res/res_pjsip_one_touch_record_info.c
+++ b/res/res_pjsip_one_touch_record_info.c
@@ -107,12 +107,7 @@ static struct ast_sip_session_supplement info_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
- if (ast_sip_session_register_supplement(&info_supplement)) {
- ast_log(LOG_ERROR, "Unable to register One Touch Recording supplement\n");
- return AST_MODULE_LOAD_DECLINE;
- }
+ ast_sip_session_register_supplement(&info_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -128,5 +123,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP INFO One Touch
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_outbound_authenticator_digest.c b/res/res_pjsip_outbound_authenticator_digest.c
index 54bba08de..063b4d3eb 100644
--- a/res/res_pjsip_outbound_authenticator_digest.c
+++ b/res/res_pjsip_outbound_authenticator_digest.c
@@ -205,8 +205,6 @@ static struct ast_sip_outbound_authenticator digest_authenticator = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
if (ast_sip_register_outbound_authenticator(&digest_authenticator)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_outbound_publish.c b/res/res_pjsip_outbound_publish.c
index b4e3320f4..75e74a26f 100644
--- a/res/res_pjsip_outbound_publish.c
+++ b/res/res_pjsip_outbound_publish.c
@@ -345,7 +345,6 @@ AST_RWLIST_HEAD_STATIC(publisher_handlers, ast_sip_event_publisher_handler);
static void sub_add_handler(struct ast_sip_event_publisher_handler *handler)
{
AST_RWLIST_INSERT_TAIL(&publisher_handlers, handler, next);
- ast_module_ref(ast_module_info->self);
}
static struct ast_sip_event_publisher_handler *find_publisher_handler_for_event_name(const char *event_name)
@@ -643,7 +642,6 @@ void ast_sip_unregister_event_publisher_handler(struct ast_sip_event_publisher_h
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&publisher_handlers, iter, next) {
if (handler == iter) {
AST_RWLIST_REMOVE_CURRENT(next);
- ast_module_unref(ast_module_info->self);
break;
}
}
@@ -1643,8 +1641,6 @@ static int unload_module(void)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
/* As of pjproject 2.4.5, PJSIP_MAX_URL_SIZE isn't exposed yet but we try anyway. */
ast_pjproject_get_buildopt("PJSIP_MAX_URL_SIZE", "%d", &pjsip_max_url_size);
diff --git a/res/res_pjsip_outbound_registration.c b/res/res_pjsip_outbound_registration.c
index 79bea482b..536703325 100644
--- a/res/res_pjsip_outbound_registration.c
+++ b/res/res_pjsip_outbound_registration.c
@@ -2177,8 +2177,6 @@ static int load_module(void)
{
struct ao2_container *new_states;
- CHECK_PJSIP_MODULE_LOADED();
-
shutdown_group = ast_serializer_shutdown_group_alloc();
if (!shutdown_group) {
return AST_MODULE_LOAD_DECLINE;
diff --git a/res/res_pjsip_path.c b/res/res_pjsip_path.c
index b245f159d..3c545f9d2 100644
--- a/res/res_pjsip_path.c
+++ b/res/res_pjsip_path.c
@@ -238,16 +238,8 @@ static struct ast_sip_session_supplement path_session_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
- if (ast_sip_register_supplement(&path_supplement)) {
- return AST_MODULE_LOAD_DECLINE;
- }
-
- if (ast_sip_session_register_supplement(&path_session_supplement)) {
- ast_sip_unregister_supplement(&path_supplement);
- return AST_MODULE_LOAD_DECLINE;
- }
+ ast_sip_register_supplement(&path_supplement);
+ ast_sip_session_register_supplement(&path_session_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -264,5 +256,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP Path Header Sup
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_phoneprov_provider.c b/res/res_pjsip_phoneprov_provider.c
index 11031c3c1..acb1e68b5 100644
--- a/res/res_pjsip_phoneprov_provider.c
+++ b/res/res_pjsip_phoneprov_provider.c
@@ -367,8 +367,6 @@ static int load_users(void)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
sorcery = ast_sip_get_sorcery();
ast_sorcery_apply_config(sorcery, "res_pjsip_phoneprov_provider");
diff --git a/res/res_pjsip_pidf_body_generator.c b/res/res_pjsip_pidf_body_generator.c
index 6426dfa9d..8bc062e08 100644
--- a/res/res_pjsip_pidf_body_generator.c
+++ b/res/res_pjsip_pidf_body_generator.c
@@ -116,8 +116,6 @@ static struct ast_sip_pubsub_body_generator pidf_body_generator = {
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_sip_pubsub_register_body_generator(&pidf_body_generator)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_pidf_digium_body_supplement.c b/res/res_pjsip_pidf_digium_body_supplement.c
index f855e2153..832f42302 100644
--- a/res/res_pjsip_pidf_digium_body_supplement.c
+++ b/res/res_pjsip_pidf_digium_body_supplement.c
@@ -95,8 +95,6 @@ static struct ast_sip_pubsub_body_supplement pidf_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_sip_pubsub_register_body_supplement(&pidf_supplement)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_pidf_eyebeam_body_supplement.c b/res/res_pjsip_pidf_eyebeam_body_supplement.c
index 6629aa3c1..15446bc52 100644
--- a/res/res_pjsip_pidf_eyebeam_body_supplement.c
+++ b/res/res_pjsip_pidf_eyebeam_body_supplement.c
@@ -92,8 +92,6 @@ static struct ast_sip_pubsub_body_supplement pidf_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_sip_pubsub_register_body_supplement(&pidf_supplement)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_publish_asterisk.c b/res/res_pjsip_publish_asterisk.c
index 13d7fd43b..220ba0bc5 100644
--- a/res/res_pjsip_publish_asterisk.c
+++ b/res/res_pjsip_publish_asterisk.c
@@ -855,8 +855,6 @@ static int regex_filter_handler(const struct aco_option *opt, struct ast_variabl
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_eid_is_empty(&ast_eid_default)) {
ast_log(LOG_ERROR, "Entity ID is not set.\n");
return AST_MODULE_LOAD_DECLINE;
diff --git a/res/res_pjsip_pubsub.c b/res/res_pjsip_pubsub.c
index af696b849..369e06d4c 100644
--- a/res/res_pjsip_pubsub.c
+++ b/res/res_pjsip_pubsub.c
@@ -2583,8 +2583,6 @@ int ast_sip_register_publish_handler(struct ast_sip_publish_handler *handler)
publish_add_handler(handler);
- ast_module_ref(ast_module_info->self);
-
return 0;
}
@@ -2597,7 +2595,6 @@ void ast_sip_unregister_publish_handler(struct ast_sip_publish_handler *handler)
if (handler == iter) {
AST_RWLIST_REMOVE_CURRENT(next);
ao2_cleanup(handler->publications);
- ast_module_unref(ast_module_info->self);
break;
}
}
@@ -2611,7 +2608,6 @@ static void sub_add_handler(struct ast_sip_subscription_handler *handler)
{
AST_RWLIST_WRLOCK(&subscription_handlers);
AST_RWLIST_INSERT_TAIL(&subscription_handlers, handler, next);
- ast_module_ref(ast_module_info->self);
AST_RWLIST_UNLOCK(&subscription_handlers);
}
@@ -2670,7 +2666,6 @@ void ast_sip_unregister_subscription_handler(struct ast_sip_subscription_handler
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&subscription_handlers, iter, next) {
if (handler == iter) {
AST_RWLIST_REMOVE_CURRENT(next);
- ast_module_unref(ast_module_info->self);
break;
}
}
@@ -5378,8 +5373,6 @@ static int load_module(void)
static const pj_str_t str_PUBLISH = { "PUBLISH", 7 };
struct ast_sorcery *sorcery;
- CHECK_PJSIP_MODULE_LOADED();
-
sorcery = ast_sip_get_sorcery();
if (!(sched = ast_sched_context_create())) {
diff --git a/res/res_pjsip_refer.c b/res/res_pjsip_refer.c
index 3100993de..5e0141b09 100644
--- a/res/res_pjsip_refer.c
+++ b/res/res_pjsip_refer.c
@@ -1202,8 +1202,6 @@ static int load_module(void)
{
const pj_str_t str_norefersub = { "norefersub", 10 };
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
pjsip_replaces_init_module(ast_sip_get_pjsip_endpoint());
pjsip_xfer_init_module(ast_sip_get_pjsip_endpoint());
pjsip_endpt_add_capability(ast_sip_get_pjsip_endpoint(), NULL, PJSIP_H_SUPPORTED, NULL, 1, &str_norefersub);
diff --git a/res/res_pjsip_registrar.c b/res/res_pjsip_registrar.c
index 7277a5f4f..00981fb77 100644
--- a/res/res_pjsip_registrar.c
+++ b/res/res_pjsip_registrar.c
@@ -1095,14 +1095,10 @@ static int load_module(void)
{
const pj_str_t STR_REGISTER = { "REGISTER", 8 };
- CHECK_PJPROJECT_MODULE_LOADED();
-
ast_pjproject_get_buildopt("PJ_MAX_HOSTNAME", "%d", &pj_max_hostname);
/* As of pjproject 2.4.5, PJSIP_MAX_URL_SIZE isn't exposed yet but we try anyway. */
ast_pjproject_get_buildopt("PJSIP_MAX_URL_SIZE", "%d", &pjsip_max_url_size);
- CHECK_PJSIP_MODULE_LOADED();
-
if (ast_sip_register_service(&registrar_module)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_registrar_expire.c b/res/res_pjsip_registrar_expire.c
index 85e3fb859..e89ea0332 100644
--- a/res/res_pjsip_registrar_expire.c
+++ b/res/res_pjsip_registrar_expire.c
@@ -137,8 +137,6 @@ static int unload_module(void)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
ast_sorcery_observer_add(ast_sip_get_sorcery(), "global", &expiration_global_observer);
ast_sorcery_reload_object(ast_sip_get_sorcery(), "global");
diff --git a/res/res_pjsip_rfc3326.c b/res/res_pjsip_rfc3326.c
index 8b8035efc..6c02a176c 100644
--- a/res/res_pjsip_rfc3326.c
+++ b/res/res_pjsip_rfc3326.c
@@ -138,8 +138,6 @@ static struct ast_sip_session_supplement rfc3326_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
ast_sip_session_register_supplement(&rfc3326_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -155,5 +153,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP RFC3326 Support
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_sdp_rtp.c b/res/res_pjsip_sdp_rtp.c
index 3cc97644a..ce8ed82df 100644
--- a/res/res_pjsip_sdp_rtp.c
+++ b/res/res_pjsip_sdp_rtp.c
@@ -1928,8 +1928,6 @@ static int unload_module(void)
*/
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
if (ast_check_ipv6()) {
ast_sockaddr_parse(&address_rtp, "::", 0);
} else {
diff --git a/res/res_pjsip_send_to_voicemail.c b/res/res_pjsip_send_to_voicemail.c
index 06c3edc03..d68960275 100644
--- a/res/res_pjsip_send_to_voicemail.c
+++ b/res/res_pjsip_send_to_voicemail.c
@@ -215,12 +215,7 @@ static struct ast_sip_session_supplement refer_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
- if (ast_sip_session_register_supplement(&refer_supplement)) {
- ast_log(LOG_ERROR, "Unable to register Send to Voicemail supplement\n");
- return AST_MODULE_LOAD_DECLINE;
- }
+ ast_sip_session_register_supplement(&refer_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c
index 8247fbaaa..4d4ed4770 100644
--- a/res/res_pjsip_session.c
+++ b/res/res_pjsip_session.c
@@ -124,7 +124,7 @@ int ast_sip_session_register_sdp_handler(struct ast_sip_session_sdp_handler *han
}
AST_LIST_INSERT_TAIL(&handler_list->list, handler, next);
ast_debug(1, "Registered SDP stream handler '%s' for stream type '%s'\n", handler->id, stream_type);
- ast_module_ref(ast_module_info->self);
+
return 0;
}
@@ -141,7 +141,7 @@ int ast_sip_session_register_sdp_handler(struct ast_sip_session_sdp_handler *han
return -1;
}
ast_debug(1, "Registered SDP stream handler '%s' for stream type '%s'\n", handler->id, stream_type);
- ast_module_ref(ast_module_info->self);
+
return 0;
}
@@ -156,7 +156,6 @@ static int remove_handler(void *obj, void *arg, void *data, int flags)
if (!strcmp(iter->id, handler->id)) {
AST_LIST_REMOVE_CURRENT(next);
ast_debug(1, "Unregistered SDP stream handler '%s' for stream type '%s'\n", handler->id, stream_type);
- ast_module_unref(ast_module_info->self);
}
}
AST_LIST_TRAVERSE_SAFE_END;
@@ -4156,8 +4155,6 @@ static int load_module(void)
{
pjsip_endpoint *endpt;
- CHECK_PJSIP_MODULE_LOADED();
-
if (!ast_sip_get_sorcery() || !ast_sip_get_pjsip_endpoint()) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_sips_contact.c b/res/res_pjsip_sips_contact.c
index 41b26df7d..7c0ff4360 100644
--- a/res/res_pjsip_sips_contact.c
+++ b/res/res_pjsip_sips_contact.c
@@ -90,8 +90,6 @@ static int unload_module(void)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
if (ast_sip_register_service(&sips_contact_module)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_t38.c b/res/res_pjsip_t38.c
index 7b7cd9910..249472ba9 100644
--- a/res/res_pjsip_t38.c
+++ b/res/res_pjsip_t38.c
@@ -1023,18 +1023,13 @@ static int unload_module(void)
*/
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
if (ast_check_ipv6()) {
ast_sockaddr_parse(&address, "::", 0);
} else {
ast_sockaddr_parse(&address, "0.0.0.0", 0);
}
- if (ast_sip_session_register_supplement(&t38_supplement)) {
- ast_log(LOG_ERROR, "Unable to register T.38 session supplement\n");
- goto end;
- }
+ ast_sip_session_register_supplement(&t38_supplement);
if (ast_sip_session_register_sdp_handler(&image_sdp_handler, "image")) {
ast_log(LOG_ERROR, "Unable to register SDP handler for image stream type\n");
diff --git a/res/res_pjsip_transport_management.c b/res/res_pjsip_transport_management.c
index acffb86dc..afaa24815 100644
--- a/res/res_pjsip_transport_management.c
+++ b/res/res_pjsip_transport_management.c
@@ -323,8 +323,6 @@ static int load_module(void)
{
struct ao2_container *transports;
- CHECK_PJSIP_MODULE_LOADED();
-
transports = ao2_container_alloc(TRANSPORTS_BUCKETS, monitored_transport_hash_fn,
monitored_transport_cmp_fn);
if (!transports) {
diff --git a/res/res_pjsip_transport_websocket.c b/res/res_pjsip_transport_websocket.c
index af1345f35..974b15087 100644
--- a/res/res_pjsip_transport_websocket.c
+++ b/res/res_pjsip_transport_websocket.c
@@ -471,8 +471,6 @@ static struct ast_sip_session_supplement websocket_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
/*
* We only need one transport type name (ws) defined. Firefox
* and Chrome do not support anything other than secure websockets
@@ -490,10 +488,7 @@ static int load_module(void)
return AST_MODULE_LOAD_DECLINE;
}
- if (ast_sip_session_register_supplement(&websocket_supplement)) {
- ast_sip_unregister_service(&websocket_module);
- return AST_MODULE_LOAD_DECLINE;
- }
+ ast_sip_session_register_supplement(&websocket_supplement);
if (ast_websocket_add_protocol("sip", websocket_cb)) {
ast_sip_session_unregister_supplement(&websocket_supplement);
diff --git a/res/res_pjsip_xpidf_body_generator.c b/res/res_pjsip_xpidf_body_generator.c
index f7c84db3d..7395fd9b7 100644
--- a/res/res_pjsip_xpidf_body_generator.c
+++ b/res/res_pjsip_xpidf_body_generator.c
@@ -148,8 +148,6 @@ static void unregister_all(void)
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_sip_pubsub_register_body_generator(&xpidf_body_generator)) {
goto fail;
}
diff --git a/res/res_pktccops.c b/res/res_pktccops.c
index 3a12285cb..9beabfb3d 100644
--- a/res/res_pktccops.c
+++ b/res/res_pktccops.c
@@ -1472,9 +1472,6 @@ static int load_module(void)
ast_cli_register_multiple(cli_pktccops, sizeof(cli_pktccops) / sizeof(struct ast_cli_entry));
restart_pktc_thread();
- /* For Optional API. */
- ast_module_shutdown_ref(AST_MODULE_SELF);
-
return 0;
}
diff --git a/res/res_smdi.c b/res/res_smdi.c
index 76e70c274..1d4826a6a 100644
--- a/res/res_smdi.c
+++ b/res/res_smdi.c
@@ -1405,9 +1405,6 @@ static int load_module(void)
ast_custom_function_register(&smdi_msg_retrieve_function);
ast_custom_function_register(&smdi_msg_function);
- /* For Optional API. */
- ast_module_shutdown_ref(AST_MODULE_SELF);
-
return AST_MODULE_LOAD_SUCCESS;
}
diff --git a/res/res_stasis.c b/res/res_stasis.c
index a60ec5fde..dcd74141f 100644
--- a/res/res_stasis.c
+++ b/res/res_stasis.c
@@ -1302,8 +1302,6 @@ static void remove_stasis_end_published(struct ast_channel *chan)
int stasis_app_exec(struct ast_channel *chan, const char *app_name, int argc,
char *argv[])
{
- SCOPED_MODULE_USE(ast_module_info->self);
-
RAII_VAR(struct stasis_app *, app, NULL, ao2_cleanup);
RAII_VAR(struct stasis_app_control *, control, NULL, control_unlink);
struct ast_bridge *bridge = NULL;
@@ -1654,11 +1652,6 @@ void stasis_app_register_event_source(struct stasis_app_event_source *obj)
{
AST_RWLIST_WRLOCK(&event_sources);
AST_LIST_INSERT_TAIL(&event_sources, obj, next);
- /* only need to bump the module ref on non-core sources because the
- core ones are [un]registered by this module. */
- if (!stasis_app_is_core_event_source(obj)) {
- ast_module_ref(ast_module_info->self);
- }
AST_RWLIST_UNLOCK(&event_sources);
}
@@ -1670,9 +1663,6 @@ void stasis_app_unregister_event_source(struct stasis_app_event_source *obj)
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&event_sources, source, next) {
if (source == obj) {
AST_RWLIST_REMOVE_CURRENT(next);
- if (!stasis_app_is_core_event_source(obj)) {
- ast_module_unref(ast_module_info->self);
- }
break;
}
}
@@ -2036,16 +2026,6 @@ enum stasis_app_user_event_res stasis_app_user_event(const char *app_name,
return STASIS_APP_USER_OK;
}
-void stasis_app_ref(void)
-{
- ast_module_ref(ast_module_info->self);
-}
-
-void stasis_app_unref(void)
-{
- ast_module_unref(ast_module_info->self);
-}
-
static int unload_module(void)
{
stasis_app_unregister_event_sources();
diff --git a/res/res_stasis_mailbox.c b/res/res_stasis_mailbox.c
index 3d0e9db69..3f6bede8f 100644
--- a/res/res_stasis_mailbox.c
+++ b/res/res_stasis_mailbox.c
@@ -143,17 +143,11 @@ enum stasis_mailbox_result stasis_app_mailbox_delete(
static int load_module(void)
{
- /* Must be done first */
- ast_mwi_external_ref();
-
return AST_MODULE_LOAD_SUCCESS;
}
static int unload_module(void)
{
- /* Must be done last */
- ast_mwi_external_unref();
-
return 0;
}
diff --git a/res/res_statsd.c b/res/res_statsd.c
index 221b359c9..8e647bcd8 100644
--- a/res/res_statsd.c
+++ b/res/res_statsd.c
@@ -353,9 +353,6 @@ static int load_module(void)
return AST_MODULE_LOAD_DECLINE;
}
- /* For Optional API. */
- ast_module_shutdown_ref(AST_MODULE_SELF);
-
return AST_MODULE_LOAD_SUCCESS;
}
diff --git a/res/stasis/app.c b/res/stasis/app.c
index 854e79977..18ac7d6ed 100644
--- a/res/stasis/app.c
+++ b/res/stasis/app.c
@@ -1600,13 +1600,6 @@ void stasis_app_register_event_sources(void)
stasis_app_register_event_source(&endpoint_event_source);
}
-int stasis_app_is_core_event_source(struct stasis_app_event_source *obj)
-{
- return obj == &endpoint_event_source ||
- obj == &bridge_event_source ||
- obj == &channel_event_source;
-}
-
void stasis_app_unregister_event_sources(void)
{
stasis_app_unregister_event_source(&endpoint_event_source);
diff --git a/rest-api-templates/res_ari_resource.c.mustache b/rest-api-templates/res_ari_resource.c.mustache
index c1f680f21..e1894c927 100644
--- a/rest-api-templates/res_ari_resource.c.mustache
+++ b/rest-api-templates/res_ari_resource.c.mustache
@@ -266,7 +266,6 @@ static int unload_module(void)
ast_ari_websocket_events_event_websocket_dtor();
{{/has_websocket}}
{{/apis}}
- stasis_app_unref();
return 0;
}
@@ -274,43 +273,37 @@ static int load_module(void)
{
int res = 0;
- CHECK_ARI_MODULE_LOADED();
-
{{#apis}}
{{#operations}}
{{#has_websocket}}
- /* This is scoped to not conflict with CHECK_ARI_MODULE_LOADED */
- {
- struct ast_websocket_protocol *protocol;
+ struct ast_websocket_protocol *protocol;
- if (ast_ari_websocket_{{c_name}}_{{c_nickname}}_init() == -1) {
- return AST_MODULE_LOAD_DECLINE;
- }
+ if (ast_ari_websocket_{{c_name}}_{{c_nickname}}_init() == -1) {
+ return AST_MODULE_LOAD_DECLINE;
+ }
- {{full_name}}.ws_server = ast_websocket_server_create();
- if (!{{full_name}}.ws_server) {
- ast_ari_websocket_events_event_websocket_dtor();
- return AST_MODULE_LOAD_DECLINE;
- }
+ {{full_name}}.ws_server = ast_websocket_server_create();
+ if (!{{full_name}}.ws_server) {
+ ast_ari_websocket_events_event_websocket_dtor();
+ return AST_MODULE_LOAD_DECLINE;
+ }
- protocol = ast_websocket_sub_protocol_alloc("{{websocket_protocol}}");
- if (!protocol) {
- ao2_ref({{full_name}}.ws_server, -1);
- {{full_name}}.ws_server = NULL;
- ast_ari_websocket_events_event_websocket_dtor();
- return AST_MODULE_LOAD_DECLINE;
- }
- protocol->session_attempted = ast_ari_{{c_name}}_{{c_nickname}}_ws_attempted_cb;
- protocol->session_established = ast_ari_{{c_name}}_{{c_nickname}}_ws_established_cb;
+ protocol = ast_websocket_sub_protocol_alloc("{{websocket_protocol}}");
+ if (!protocol) {
+ ao2_ref({{full_name}}.ws_server, -1);
+ {{full_name}}.ws_server = NULL;
+ ast_ari_websocket_events_event_websocket_dtor();
+ return AST_MODULE_LOAD_DECLINE;
+ }
+ protocol->session_attempted = ast_ari_{{c_name}}_{{c_nickname}}_ws_attempted_cb;
+ protocol->session_established = ast_ari_{{c_name}}_{{c_nickname}}_ws_established_cb;
{{/has_websocket}}
{{#is_websocket}}
- res |= ast_websocket_server_add_protocol2({{full_name}}.ws_server, protocol);
- }
+ res |= ast_websocket_server_add_protocol2({{full_name}}.ws_server, protocol);
{{/is_websocket}}
{{/operations}}
{{/apis}}
- stasis_app_ref();
res |= ast_ari_add_handler(&{{root_full_name}});
if (res) {
unload_module();
diff --git a/tests/test_res_pjsip_scheduler.c b/tests/test_res_pjsip_scheduler.c
index 47a7034ff..d0c2d90b5 100644
--- a/tests/test_res_pjsip_scheduler.c
+++ b/tests/test_res_pjsip_scheduler.c
@@ -376,8 +376,6 @@ AST_TEST_DEFINE(scheduler_policy)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
AST_TEST_REGISTER(serialized_scheduler);
AST_TEST_REGISTER(unserialized_scheduler);
AST_TEST_REGISTER(scheduler_cleanup);
diff --git a/tests/test_res_stasis.c b/tests/test_res_stasis.c
index 077cc4c7a..2c7906a65 100644
--- a/tests/test_res_stasis.c
+++ b/tests/test_res_stasis.c
@@ -179,13 +179,11 @@ static int unload_module(void)
AST_TEST_UNREGISTER(app_invoke_dne);
AST_TEST_UNREGISTER(app_invoke_one);
AST_TEST_UNREGISTER(app_replaced);
- stasis_app_unref();
return 0;
}
static int load_module(void)
{
- stasis_app_ref();
AST_TEST_REGISTER(app_replaced);
AST_TEST_REGISTER(app_invoke_one);
AST_TEST_REGISTER(app_invoke_dne);
diff --git a/tests/test_utils.c b/tests/test_utils.c
index 68a285727..f9746e288 100644
--- a/tests/test_utils.c
+++ b/tests/test_utils.c
@@ -391,7 +391,7 @@ AST_TEST_DEFINE(agi_loaded_test)
}
#endif
- ast_agi_unregister(ast_module_info->self, &noop_command);
+ ast_agi_unregister(&noop_command);
return res;
}