From 527cf5a57033820313356414b971fdf0f4382b21 Mon Sep 17 00:00:00 2001 From: Corey Farrell Date: Fri, 29 Dec 2017 03:57:17 -0500 Subject: 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 --- apps/app_confbridge.c | 5 +- apps/app_meetme.c | 3 +- apps/app_stack.c | 2 +- apps/app_stasis.c | 11 +-- channels/chan_pjsip.c | 30 ++------ funcs/func_curl.c | 8 +-- funcs/func_periodic_hook.c | 5 -- include/asterisk/agi.h | 6 +- include/asterisk/ari.h | 10 --- include/asterisk/res_mwi_external.h | 16 ----- include/asterisk/res_pjproject.h | 22 ------ include/asterisk/res_pjsip.h | 31 ++------- include/asterisk/res_pjsip_pubsub.h | 9 --- include/asterisk/res_pjsip_session.h | 21 +----- include/asterisk/stasis_app.h | 30 +------- res/res_agi.c | 19 ++--- res/res_ari.c | 2 - res/res_ari_applications.c | 4 -- res/res_ari_asterisk.c | 4 -- res/res_ari_bridges.c | 4 -- res/res_ari_channels.c | 4 -- res/res_ari_device_states.c | 4 -- res/res_ari_endpoints.c | 4 -- res/res_ari_events.c | 43 +++++------- res/res_ari_mailboxes.c | 4 -- res/res_ari_playbacks.c | 4 -- res/res_ari_recordings.c | 4 -- res/res_ari_sounds.c | 4 -- res/res_config_curl.c | 15 +--- res/res_crypto.c | 3 - res/res_curl.c | 24 +------ res/res_fax.c | 2 - res/res_hep_pjsip.c | 6 +- res/res_hep_rtcp.c | 4 +- res/res_http_media_cache.c | 1 + res/res_http_websocket.c | 33 ++------- res/res_monitor.c | 3 - res/res_mwi_external.c | 10 --- res/res_mwi_external_ami.c | 5 -- res/res_pjproject.c | 10 --- res/res_pjsip.c | 96 ++++---------------------- res/res_pjsip/config_auth.c | 4 +- res/res_pjsip/config_transport.c | 4 +- res/res_pjsip/include/res_pjsip_private.h | 48 ------------- res/res_pjsip/location.c | 4 +- res/res_pjsip/pjsip_distributor.c | 12 ++-- res/res_pjsip/pjsip_global_headers.c | 4 +- res/res_pjsip/pjsip_message_filter.c | 16 ++--- res/res_pjsip/pjsip_options.c | 4 +- res/res_pjsip/pjsip_session.c | 25 +------ res/res_pjsip_acl.c | 2 - res/res_pjsip_authenticator_digest.c | 2 - res/res_pjsip_caller_id.c | 2 - res/res_pjsip_dialog_info_body_generator.c | 2 - res/res_pjsip_diversion.c | 4 +- res/res_pjsip_dlg_options.c | 5 +- res/res_pjsip_dtmf_info.c | 4 +- res/res_pjsip_empty_info.c | 4 +- res/res_pjsip_endpoint_identifier_anonymous.c | 2 - res/res_pjsip_endpoint_identifier_ip.c | 2 - res/res_pjsip_endpoint_identifier_user.c | 2 - res/res_pjsip_exten_state.c | 7 -- res/res_pjsip_header_funcs.c | 2 - res/res_pjsip_history.c | 2 - res/res_pjsip_logger.c | 2 - res/res_pjsip_messaging.c | 4 +- res/res_pjsip_mwi.c | 2 - res/res_pjsip_mwi_body_generator.c | 2 - res/res_pjsip_nat.c | 10 +-- res/res_pjsip_notify.c | 2 - res/res_pjsip_one_touch_record_info.c | 9 +-- res/res_pjsip_outbound_authenticator_digest.c | 2 - res/res_pjsip_outbound_publish.c | 4 -- res/res_pjsip_outbound_registration.c | 2 - res/res_pjsip_path.c | 14 +--- res/res_pjsip_phoneprov_provider.c | 2 - res/res_pjsip_pidf_body_generator.c | 2 - res/res_pjsip_pidf_digium_body_supplement.c | 2 - res/res_pjsip_pidf_eyebeam_body_supplement.c | 2 - res/res_pjsip_publish_asterisk.c | 2 - res/res_pjsip_pubsub.c | 7 -- res/res_pjsip_refer.c | 2 - res/res_pjsip_registrar.c | 4 -- res/res_pjsip_registrar_expire.c | 2 - res/res_pjsip_rfc3326.c | 4 +- res/res_pjsip_sdp_rtp.c | 2 - res/res_pjsip_send_to_voicemail.c | 7 +- res/res_pjsip_session.c | 7 +- res/res_pjsip_sips_contact.c | 2 - res/res_pjsip_t38.c | 7 +- res/res_pjsip_transport_management.c | 2 - res/res_pjsip_transport_websocket.c | 7 +- res/res_pjsip_xpidf_body_generator.c | 2 - res/res_pktccops.c | 3 - res/res_smdi.c | 3 - res/res_stasis.c | 20 ------ res/res_stasis_mailbox.c | 6 -- res/res_statsd.c | 3 - res/stasis/app.c | 7 -- rest-api-templates/res_ari_resource.c.mustache | 45 +++++------- tests/test_res_pjsip_scheduler.c | 2 - tests/test_res_stasis.c | 2 - tests/test_utils.c | 2 +- 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" @@ -228,18 +228,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. * @@ -849,20 +837,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 * 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,56 +314,8 @@ 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 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(¬ify_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(®istrar_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; } -- cgit v1.2.3