summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
authorJenkins2 <jenkins2@gerrit.asterisk.org>2018-01-29 12:39:34 -0600
committerGerrit Code Review <gerrit2@gerrit.digium.api>2018-01-29 12:39:34 -0600
commita231e1d155130f49f0235a20e6974b4be91c729f (patch)
treec380bfc8075515f3791935afd737bc5328cddbcf /res
parentbd565fc7cf79b8b18e3a88c01bbf1d364abdf7c8 (diff)
parent527cf5a57033820313356414b971fdf0f4382b21 (diff)
Merge "Remove redundant module checks and references."
Diffstat (limited to 'res')
-rw-r--r--res/res_agi.c19
-rw-r--r--res/res_ari.c2
-rw-r--r--res/res_ari_applications.c4
-rw-r--r--res/res_ari_asterisk.c4
-rw-r--r--res/res_ari_bridges.c4
-rw-r--r--res/res_ari_channels.c4
-rw-r--r--res/res_ari_device_states.c4
-rw-r--r--res/res_ari_endpoints.c4
-rw-r--r--res/res_ari_events.c43
-rw-r--r--res/res_ari_mailboxes.c4
-rw-r--r--res/res_ari_playbacks.c4
-rw-r--r--res/res_ari_recordings.c4
-rw-r--r--res/res_ari_sounds.c4
-rw-r--r--res/res_config_curl.c15
-rw-r--r--res/res_crypto.c3
-rw-r--r--res/res_curl.c24
-rw-r--r--res/res_fax.c2
-rw-r--r--res/res_hep_pjsip.c6
-rw-r--r--res/res_hep_rtcp.c4
-rw-r--r--res/res_http_media_cache.c1
-rw-r--r--res/res_http_websocket.c33
-rw-r--r--res/res_monitor.c3
-rw-r--r--res/res_mwi_external.c10
-rw-r--r--res/res_mwi_external_ami.c5
-rw-r--r--res/res_pjproject.c10
-rw-r--r--res/res_pjsip.c96
-rw-r--r--res/res_pjsip/config_auth.c4
-rw-r--r--res/res_pjsip/config_transport.c4
-rw-r--r--res/res_pjsip/include/res_pjsip_private.h48
-rw-r--r--res/res_pjsip/location.c4
-rw-r--r--res/res_pjsip/pjsip_distributor.c12
-rw-r--r--res/res_pjsip/pjsip_global_headers.c4
-rw-r--r--res/res_pjsip/pjsip_message_filter.c16
-rw-r--r--res/res_pjsip/pjsip_options.c4
-rw-r--r--res/res_pjsip/pjsip_session.c25
-rw-r--r--res/res_pjsip_acl.c2
-rw-r--r--res/res_pjsip_authenticator_digest.c2
-rw-r--r--res/res_pjsip_caller_id.c2
-rw-r--r--res/res_pjsip_dialog_info_body_generator.c2
-rw-r--r--res/res_pjsip_diversion.c4
-rw-r--r--res/res_pjsip_dlg_options.c5
-rw-r--r--res/res_pjsip_dtmf_info.c4
-rw-r--r--res/res_pjsip_empty_info.c4
-rw-r--r--res/res_pjsip_endpoint_identifier_anonymous.c2
-rw-r--r--res/res_pjsip_endpoint_identifier_ip.c2
-rw-r--r--res/res_pjsip_endpoint_identifier_user.c2
-rw-r--r--res/res_pjsip_exten_state.c7
-rw-r--r--res/res_pjsip_header_funcs.c2
-rw-r--r--res/res_pjsip_history.c2
-rw-r--r--res/res_pjsip_logger.c2
-rw-r--r--res/res_pjsip_messaging.c4
-rw-r--r--res/res_pjsip_mwi.c2
-rw-r--r--res/res_pjsip_mwi_body_generator.c2
-rw-r--r--res/res_pjsip_nat.c10
-rw-r--r--res/res_pjsip_notify.c2
-rw-r--r--res/res_pjsip_one_touch_record_info.c9
-rw-r--r--res/res_pjsip_outbound_authenticator_digest.c2
-rw-r--r--res/res_pjsip_outbound_publish.c4
-rw-r--r--res/res_pjsip_outbound_registration.c2
-rw-r--r--res/res_pjsip_path.c14
-rw-r--r--res/res_pjsip_phoneprov_provider.c2
-rw-r--r--res/res_pjsip_pidf_body_generator.c2
-rw-r--r--res/res_pjsip_pidf_digium_body_supplement.c2
-rw-r--r--res/res_pjsip_pidf_eyebeam_body_supplement.c2
-rw-r--r--res/res_pjsip_publish_asterisk.c2
-rw-r--r--res/res_pjsip_pubsub.c7
-rw-r--r--res/res_pjsip_refer.c2
-rw-r--r--res/res_pjsip_registrar.c4
-rw-r--r--res/res_pjsip_registrar_expire.c2
-rw-r--r--res/res_pjsip_rfc3326.c4
-rw-r--r--res/res_pjsip_sdp_rtp.c2
-rw-r--r--res/res_pjsip_send_to_voicemail.c7
-rw-r--r--res/res_pjsip_session.c7
-rw-r--r--res/res_pjsip_sips_contact.c2
-rw-r--r--res/res_pjsip_t38.c7
-rw-r--r--res/res_pjsip_transport_management.c2
-rw-r--r--res/res_pjsip_transport_websocket.c7
-rw-r--r--res/res_pjsip_xpidf_body_generator.c2
-rw-r--r--res/res_pktccops.c3
-rw-r--r--res/res_smdi.c3
-rw-r--r--res/res_stasis.c20
-rw-r--r--res/res_stasis_mailbox.c6
-rw-r--r--res/res_statsd.c3
-rw-r--r--res/stasis/app.c7
84 files changed, 97 insertions, 542 deletions
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 93cf7c49b..7ef0f684a 100644
--- a/res/res_ari_bridges.c
+++ b/res/res_ari_bridges.c
@@ -1556,7 +1556,6 @@ static struct stasis_rest_handlers bridges = {
static int unload_module(void)
{
ast_ari_remove_handler(&bridges);
- stasis_app_unref();
return 0;
}
@@ -1564,10 +1563,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 7ca7e2e4d..dae146c43 100644
--- a/res/res_ari_channels.c
+++ b/res/res_ari_channels.c
@@ -2848,7 +2848,6 @@ static struct stasis_rest_handlers channels = {
static int unload_module(void)
{
ast_ari_remove_handler(&channels);
- stasis_app_unref();
return 0;
}
@@ -2856,10 +2855,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 04479e6ac..12962b68a 100644
--- a/res/res_ari_device_states.c
+++ b/res/res_ari_device_states.c
@@ -325,7 +325,6 @@ static struct stasis_rest_handlers deviceStates = {
static int unload_module(void)
{
ast_ari_remove_handler(&deviceStates);
- stasis_app_unref();
return 0;
}
@@ -333,10 +332,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 06eb77a38..c8f28f97b 100644
--- a/res/res_ari_events.c
+++ b/res/res_ari_events.c
@@ -424,7 +424,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;
}
@@ -432,35 +431,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 123664e46..e25a7bc3d 100644
--- a/res/res_ari_mailboxes.c
+++ b/res/res_ari_mailboxes.c
@@ -331,7 +331,6 @@ static struct stasis_rest_handlers mailboxes = {
static int unload_module(void)
{
ast_ari_remove_handler(&mailboxes);
- stasis_app_unref();
return 0;
}
@@ -339,10 +338,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 547b39e39..5fbfcf165 100644
--- a/res/res_ari_playbacks.c
+++ b/res/res_ari_playbacks.c
@@ -283,7 +283,6 @@ static struct stasis_rest_handlers playbacks = {
static int unload_module(void)
{
ast_ari_remove_handler(&playbacks);
- stasis_app_unref();
return 0;
}
@@ -291,10 +290,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 45c789c2d..6487f3e15 100644
--- a/res/res_ari_recordings.c
+++ b/res/res_ari_recordings.c
@@ -867,7 +867,6 @@ static struct stasis_rest_handlers recordings = {
static int unload_module(void)
{
ast_ari_remove_handler(&recordings);
- stasis_app_unref();
return 0;
}
@@ -875,10 +874,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 e2b5fb252..a8631dcb7 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 0c7fd5189..6a7d918c4 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 713ab024b..15c03769b 100644
--- a/res/res_pjsip/config_transport.c
+++ b/res/res_pjsip/config_transport.c
@@ -1436,7 +1436,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) {
@@ -1466,7 +1466,7 @@ int ast_sip_destroy_sorcery_transport(void)
ast_cli_unregister_multiple(cli_commands, ARRAY_LEN(cli_commands));
ast_sip_unregister_cli_formatter(cli_formatter);
- internal_sip_unregister_endpoint_formatter(&endpoint_transport_formatter);
+ ast_sip_unregister_endpoint_formatter(&endpoint_transport_formatter);
ao2_ref(transport_states, -1);
transport_states = NULL;
diff --git a/res/res_pjsip/include/res_pjsip_private.h b/res/res_pjsip/include/res_pjsip_private.h
index 5ce3c6faf..7fafd8007 100644
--- a/res/res_pjsip/include/res_pjsip_private.h
+++ b/res/res_pjsip/include/res_pjsip_private.h
@@ -314,58 +314,10 @@ int sip_cli_print_global(struct ast_sip_cli_context *context);
*/
int sip_cli_print_system(struct ast_sip_cli_context *context);
-/*!
- * \internal
- * \brief Used by res_pjsip.so to register a service without adding a self reference
- */
-int internal_sip_register_service(pjsip_module *module);
-
-/*!
- * \internal
- * \brief Used by res_pjsip.so to unregister a service without removing a self reference
- */
-int internal_sip_unregister_service(pjsip_module *module);
-
-/*!
- * \internal
- * \brief Used by res_pjsip.so to register a supplement without adding a self reference
- */
-void internal_sip_register_supplement(struct ast_sip_supplement *supplement);
-
-/*!
- * \internal
- * \brief Used by res_pjsip.so to unregister a supplement without removing a self reference
- */
-int internal_sip_unregister_supplement(struct ast_sip_supplement *supplement);
-
-/*!
- * \internal
- * \brief Used by res_pjsip.so to register an endpoint formatter without adding a self reference
- */
-void internal_sip_register_endpoint_formatter(struct ast_sip_endpoint_formatter *obj);
-
-/*!
- * \internal
- * \brief Used by res_pjsip.so to unregister a endpoint formatter without removing a self reference
- */
-int internal_sip_unregister_endpoint_formatter(struct ast_sip_endpoint_formatter *obj);
-
struct ast_sip_session_supplement;
/*!
* \internal
- * \brief Used by res_pjsip.so to register a session supplement without adding a self reference
- */
-void internal_sip_session_register_supplement(struct ast_sip_session_supplement *supplement);
-
-/*!
- * \internal
- * \brief Used by res_pjsip.so to unregister a session supplement without removing a self reference
- */
-int internal_sip_session_unregister_supplement(struct ast_sip_session_supplement *supplement);
-
-/*!
- * \internal
* \brief Finds or creates contact_status for a contact
*/
struct ast_sip_contact_status *ast_res_pjsip_find_or_create_contact_status(const struct ast_sip_contact *contact);
diff --git a/res/res_pjsip/location.c b/res/res_pjsip/location.c
index eb9e58870..84f73c742 100644
--- a/res/res_pjsip/location.c
+++ b/res/res_pjsip/location.c
@@ -1346,7 +1346,7 @@ int ast_sip_initialize_sorcery_location(void)
ast_sorcery_object_field_register(sorcery, "aor", "outbound_proxy", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_aor, outbound_proxy));
ast_sorcery_object_field_register(sorcery, "aor", "support_path", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_aor, support_path));
- internal_sip_register_endpoint_formatter(&endpoint_aor_formatter);
+ ast_sip_register_endpoint_formatter(&endpoint_aor_formatter);
contact_formatter = ao2_alloc(sizeof(struct ast_sip_cli_formatter_entry), NULL);
if (!contact_formatter) {
@@ -1402,7 +1402,7 @@ int ast_sip_destroy_sorcery_location(void)
ast_sip_unregister_cli_formatter(aor_formatter);
ast_manager_unregister("PJSIPShowAors");
- internal_sip_unregister_endpoint_formatter(&endpoint_aor_formatter);
+ ast_sip_unregister_endpoint_formatter(&endpoint_aor_formatter);
return 0;
}
diff --git a/res/res_pjsip/pjsip_distributor.c b/res/res_pjsip/pjsip_distributor.c
index b4828d89f..c239c1a79 100644
--- a/res/res_pjsip/pjsip_distributor.c
+++ b/res/res_pjsip/pjsip_distributor.c
@@ -1243,15 +1243,15 @@ int ast_sip_initialize_distributor(void)
return -1;
}
- if (internal_sip_register_service(&distributor_mod)) {
+ if (ast_sip_register_service(&distributor_mod)) {
ast_sip_destroy_distributor();
return -1;
}
- if (internal_sip_register_service(&endpoint_mod)) {
+ if (ast_sip_register_service(&endpoint_mod)) {
ast_sip_destroy_distributor();
return -1;
}
- if (internal_sip_register_service(&auth_mod)) {
+ if (ast_sip_register_service(&auth_mod)) {
ast_sip_destroy_distributor();
return -1;
}
@@ -1282,9 +1282,9 @@ void ast_sip_destroy_distributor(void)
ast_cli_unregister_multiple(cli_commands, ARRAY_LEN(cli_commands));
ast_sip_unregister_cli_formatter(unid_formatter);
- internal_sip_unregister_service(&auth_mod);
- internal_sip_unregister_service(&endpoint_mod);
- internal_sip_unregister_service(&distributor_mod);
+ ast_sip_unregister_service(&auth_mod);
+ ast_sip_unregister_service(&endpoint_mod);
+ ast_sip_unregister_service(&distributor_mod);
ao2_global_obj_release(artificial_auth);
ao2_cleanup(artificial_endpoint);
diff --git a/res/res_pjsip/pjsip_global_headers.c b/res/res_pjsip/pjsip_global_headers.c
index 4de28b586..52075ae5c 100644
--- a/res/res_pjsip/pjsip_global_headers.c
+++ b/res/res_pjsip/pjsip_global_headers.c
@@ -165,7 +165,7 @@ void ast_sip_initialize_global_headers(void)
AST_RWLIST_HEAD_INIT(&request_headers);
AST_RWLIST_HEAD_INIT(&response_headers);
- internal_sip_register_service(&global_header_mod);
+ ast_sip_register_service(&global_header_mod);
}
static void destroy_headers(struct header_list *headers)
@@ -183,5 +183,5 @@ void ast_sip_destroy_global_headers(void)
destroy_headers(&request_headers);
destroy_headers(&response_headers);
- internal_sip_unregister_service(&global_header_mod);
+ ast_sip_unregister_service(&global_header_mod);
}
diff --git a/res/res_pjsip/pjsip_message_filter.c b/res/res_pjsip/pjsip_message_filter.c
index 427aec740..f948c4449 100644
--- a/res/res_pjsip/pjsip_message_filter.c
+++ b/res/res_pjsip/pjsip_message_filter.c
@@ -517,24 +517,24 @@ static pj_bool_t filter_on_rx_message(pjsip_rx_data *rdata)
void ast_res_pjsip_cleanup_message_filter(void)
{
- internal_sip_unregister_service(&filter_module_tsx);
- internal_sip_unregister_service(&filter_module_transport);
- internal_sip_unregister_supplement(&filter_supplement);
- internal_sip_session_unregister_supplement(&filter_session_supplement);
+ ast_sip_unregister_service(&filter_module_tsx);
+ ast_sip_unregister_service(&filter_module_transport);
+ ast_sip_unregister_supplement(&filter_supplement);
+ ast_sip_session_unregister_supplement(&filter_session_supplement);
}
int ast_res_pjsip_init_message_filter(void)
{
- internal_sip_session_register_supplement(&filter_session_supplement);
- internal_sip_register_supplement(&filter_supplement);
+ ast_sip_session_register_supplement(&filter_session_supplement);
+ ast_sip_register_supplement(&filter_supplement);
- if (internal_sip_register_service(&filter_module_transport)) {
+ if (ast_sip_register_service(&filter_module_transport)) {
ast_log(LOG_ERROR, "Could not register message filter module for incoming and outgoing requests\n");
ast_res_pjsip_cleanup_message_filter();
return -1;
}
- if (internal_sip_register_service(&filter_module_tsx)) {
+ if (ast_sip_register_service(&filter_module_tsx)) {
ast_log(LOG_ERROR, "Could not register message filter module for incoming and outgoing requests\n");
ast_res_pjsip_cleanup_message_filter();
return -1;
diff --git a/res/res_pjsip/pjsip_options.c b/res/res_pjsip/pjsip_options.c
index 3465eae34..4ae1f31d1 100644
--- a/res/res_pjsip/pjsip_options.c
+++ b/res/res_pjsip/pjsip_options.c
@@ -1562,7 +1562,7 @@ int ast_res_pjsip_init_options_handling(int reload)
return -1;
}
- internal_sip_register_endpoint_formatter(&contact_status_formatter);
+ ast_sip_register_endpoint_formatter(&contact_status_formatter);
ast_manager_register_xml("PJSIPQualify", EVENT_FLAG_SYSTEM | EVENT_FLAG_REPORTING, ami_sip_qualify);
ast_manager_register_xml("PJSIPShowContacts", EVENT_FLAG_SYSTEM, ami_show_contacts);
ast_cli_register_multiple(cli_options, ARRAY_LEN(cli_options));
@@ -1578,7 +1578,7 @@ void ast_res_pjsip_cleanup_options_handling(void)
ast_cli_unregister_multiple(cli_options, ARRAY_LEN(cli_options));
ast_manager_unregister("PJSIPQualify");
ast_manager_unregister("PJSIPShowContacts");
- internal_sip_unregister_endpoint_formatter(&contact_status_formatter);
+ ast_sip_unregister_endpoint_formatter(&contact_status_formatter);
ast_sorcery_observer_remove(ast_sip_get_sorcery(), "aor", &observer_callbacks_options);
pjsip_endpt_unregister_module(ast_sip_get_pjsip_endpoint(), &options_module);
diff --git a/res/res_pjsip/pjsip_session.c b/res/res_pjsip/pjsip_session.c
index 153561ce7..f3f3a4d87 100644
--- a/res/res_pjsip/pjsip_session.c
+++ b/res/res_pjsip/pjsip_session.c
@@ -32,7 +32,7 @@
AST_RWLIST_HEAD_STATIC(session_supplements, ast_sip_session_supplement);
-void internal_sip_session_register_supplement(struct ast_sip_session_supplement *supplement)
+void ast_sip_session_register_supplement(struct ast_sip_session_supplement *supplement)
{
struct ast_sip_session_supplement *iter;
int inserted = 0;
@@ -56,39 +56,18 @@ void internal_sip_session_register_supplement(struct ast_sip_session_supplement
}
}
-int __ast_sip_session_register_supplement(struct ast_sip_session_supplement *supplement,
- const char *file, int line, const char *func)
-{
- internal_sip_session_register_supplement(supplement);
- __ast_module_ref(AST_MODULE_SELF, file, line, func);
-
- return 0;
-}
-
-int internal_sip_session_unregister_supplement(struct ast_sip_session_supplement *supplement)
+void ast_sip_session_unregister_supplement(struct ast_sip_session_supplement *supplement)
{
struct ast_sip_session_supplement *iter;
- int res = -1;
SCOPED_LOCK(lock, &session_supplements, AST_RWLIST_WRLOCK, AST_RWLIST_UNLOCK);
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&session_supplements, iter, next) {
if (supplement == iter) {
AST_RWLIST_REMOVE_CURRENT(next);
- res = 0;
break;
}
}
AST_RWLIST_TRAVERSE_SAFE_END;
-
- return res;
-}
-
-void __ast_sip_session_unregister_supplement(struct ast_sip_session_supplement *supplement,
- const char *file, int line, const char *func)
-{
- if (!internal_sip_session_unregister_supplement(supplement)) {
- __ast_module_unref(AST_MODULE_SELF, file, line, func);
- }
}
static struct ast_sip_session_supplement *supplement_dup(const struct ast_sip_session_supplement *src)
diff --git a/res/res_pjsip_acl.c b/res/res_pjsip_acl.c
index 926986422..8caf70344 100644
--- a/res/res_pjsip_acl.c
+++ b/res/res_pjsip_acl.c
@@ -282,8 +282,6 @@ static void *acl_alloc(const char *name)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
ast_sorcery_apply_config(ast_sip_get_sorcery(), SIP_SORCERY_ACL_TYPE);
ast_sorcery_apply_default(ast_sip_get_sorcery(), SIP_SORCERY_ACL_TYPE,
"config", "pjsip.conf,criteria=type=acl");
diff --git a/res/res_pjsip_authenticator_digest.c b/res/res_pjsip_authenticator_digest.c
index b6f2b74ff..518ef73bb 100644
--- a/res/res_pjsip_authenticator_digest.c
+++ b/res/res_pjsip_authenticator_digest.c
@@ -524,8 +524,6 @@ static int reload_module(void)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
if (build_entity_id()) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_caller_id.c b/res/res_pjsip_caller_id.c
index 16731479e..f15a66c05 100644
--- a/res/res_pjsip_caller_id.c
+++ b/res/res_pjsip_caller_id.c
@@ -746,8 +746,6 @@ static struct ast_sip_session_supplement caller_id_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
ast_sip_session_register_supplement(&caller_id_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
diff --git a/res/res_pjsip_dialog_info_body_generator.c b/res/res_pjsip_dialog_info_body_generator.c
index 866ea9df8..a13995fac 100644
--- a/res/res_pjsip_dialog_info_body_generator.c
+++ b/res/res_pjsip_dialog_info_body_generator.c
@@ -198,8 +198,6 @@ static struct ast_sip_pubsub_body_generator dialog_info_body_generator = {
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_sip_pubsub_register_body_generator(&dialog_info_body_generator)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_diversion.c b/res/res_pjsip_diversion.c
index 84c42dca8..e82140b72 100644
--- a/res/res_pjsip_diversion.c
+++ b/res/res_pjsip_diversion.c
@@ -411,8 +411,6 @@ static struct ast_sip_session_supplement diversion_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
ast_sip_session_register_supplement(&diversion_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -428,5 +426,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP Add Diversion H
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_dlg_options.c b/res/res_pjsip_dlg_options.c
index 565ad2afc..93e3f228e 100644
--- a/res/res_pjsip_dlg_options.c
+++ b/res/res_pjsip_dlg_options.c
@@ -83,11 +83,8 @@ static struct ast_sip_session_supplement dlg_options_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
+ ast_sip_session_register_supplement(&dlg_options_supplement);
- if (ast_sip_session_register_supplement(&dlg_options_supplement)) {
- return AST_MODULE_LOAD_DECLINE;
- }
return AST_MODULE_LOAD_SUCCESS;
}
diff --git a/res/res_pjsip_dtmf_info.c b/res/res_pjsip_dtmf_info.c
index 68df61785..983498def 100644
--- a/res/res_pjsip_dtmf_info.c
+++ b/res/res_pjsip_dtmf_info.c
@@ -160,8 +160,6 @@ static struct ast_sip_session_supplement dtmf_info_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
ast_sip_session_register_supplement(&dtmf_info_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -177,5 +175,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP DTMF INFO Suppo
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_empty_info.c b/res/res_pjsip_empty_info.c
index c67835ce0..74e5729a5 100644
--- a/res/res_pjsip_empty_info.c
+++ b/res/res_pjsip_empty_info.c
@@ -66,8 +66,6 @@ static struct ast_sip_session_supplement empty_info_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
ast_sip_session_register_supplement(&empty_info_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -83,5 +81,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP Empty INFO Supp
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_endpoint_identifier_anonymous.c b/res/res_pjsip_endpoint_identifier_anonymous.c
index 16662ebd5..918aec553 100644
--- a/res/res_pjsip_endpoint_identifier_anonymous.c
+++ b/res/res_pjsip_endpoint_identifier_anonymous.c
@@ -116,8 +116,6 @@ static struct ast_sip_endpoint_identifier anonymous_identifier = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
ast_sip_register_endpoint_identifier_with_name(&anonymous_identifier, "anonymous");
return AST_MODULE_LOAD_SUCCESS;
}
diff --git a/res/res_pjsip_endpoint_identifier_ip.c b/res/res_pjsip_endpoint_identifier_ip.c
index ee47e4d4e..555d65331 100644
--- a/res/res_pjsip_endpoint_identifier_ip.c
+++ b/res/res_pjsip_endpoint_identifier_ip.c
@@ -717,8 +717,6 @@ static struct ast_sip_cli_formatter_entry *cli_formatter;
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
ast_sorcery_apply_config(ast_sip_get_sorcery(), "res_pjsip_endpoint_identifier_ip");
ast_sorcery_apply_default(ast_sip_get_sorcery(), "identify", "config", "pjsip.conf,criteria=type=identify");
diff --git a/res/res_pjsip_endpoint_identifier_user.c b/res/res_pjsip_endpoint_identifier_user.c
index 1b0c7d99a..e18d2fab3 100644
--- a/res/res_pjsip_endpoint_identifier_user.c
+++ b/res/res_pjsip_endpoint_identifier_user.c
@@ -195,8 +195,6 @@ static struct ast_sip_endpoint_identifier auth_username_identifier = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
ast_sip_register_endpoint_identifier_with_name(&username_identifier, "username");
ast_sip_register_endpoint_identifier_with_name(&auth_username_identifier, "auth_username");
return AST_MODULE_LOAD_SUCCESS;
diff --git a/res/res_pjsip_exten_state.c b/res/res_pjsip_exten_state.c
index e70eba7cd..47ec8b461 100644
--- a/res/res_pjsip_exten_state.c
+++ b/res/res_pjsip_exten_state.c
@@ -959,13 +959,6 @@ static int unload_module(void)
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
- if (!ast_module_check("res_pjsip_outbound_publish.so")) {
- ast_log(LOG_WARNING, "This module requires the 'res_pjsip_outbound_publish.so' module to be loaded\n");
- return AST_MODULE_LOAD_DECLINE;
- }
-
publishers = ao2_container_alloc(PUBLISHER_BUCKETS, exten_state_publisher_hash,
exten_state_publisher_cmp);
if (!publishers) {
diff --git a/res/res_pjsip_header_funcs.c b/res/res_pjsip_header_funcs.c
index 06fba0635..79302632d 100644
--- a/res/res_pjsip_header_funcs.c
+++ b/res/res_pjsip_header_funcs.c
@@ -609,8 +609,6 @@ static struct ast_sip_session_supplement header_funcs_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
ast_sip_session_register_supplement(&header_funcs_supplement);
ast_custom_function_register(&pjsip_header_function);
diff --git a/res/res_pjsip_history.c b/res/res_pjsip_history.c
index 40d26d59d..fa9e27f00 100644
--- a/res/res_pjsip_history.c
+++ b/res/res_pjsip_history.c
@@ -1364,8 +1364,6 @@ static struct ast_cli_entry cli_pjsip[] = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
log_level = ast_logger_register_level("PJSIP_HISTORY");
if (log_level < 0) {
ast_log(LOG_WARNING, "Unable to register history log level\n");
diff --git a/res/res_pjsip_logger.c b/res/res_pjsip_logger.c
index 460b6a34f..49ad6faec 100644
--- a/res/res_pjsip_logger.c
+++ b/res/res_pjsip_logger.c
@@ -231,8 +231,6 @@ static const struct ast_sorcery_observer global_observer = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
if (ast_sorcery_observer_add(ast_sip_get_sorcery(), "global", &global_observer)) {
ast_log(LOG_WARNING, "Unable to add global observer\n");
return AST_MODULE_LOAD_DECLINE;
diff --git a/res/res_pjsip_messaging.c b/res/res_pjsip_messaging.c
index 3739bcf93..cbaed83fb 100644
--- a/res/res_pjsip_messaging.c
+++ b/res/res_pjsip_messaging.c
@@ -805,8 +805,6 @@ static pjsip_module messaging_module = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
if (ast_sip_register_service(&messaging_module) != PJ_SUCCESS) {
return AST_MODULE_LOAD_DECLINE;
}
@@ -849,5 +847,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP Messaging Suppo
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_mwi.c b/res/res_pjsip_mwi.c
index 92dc7dc65..90fdc098c 100644
--- a/res/res_pjsip_mwi.c
+++ b/res/res_pjsip_mwi.c
@@ -1339,8 +1339,6 @@ static int reload(void)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
if (ast_sip_register_subscription_handler(&mwi_handler)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_mwi_body_generator.c b/res/res_pjsip_mwi_body_generator.c
index 65ac60067..29b2ed027 100644
--- a/res/res_pjsip_mwi_body_generator.c
+++ b/res/res_pjsip_mwi_body_generator.c
@@ -97,8 +97,6 @@ static struct ast_sip_pubsub_body_generator mwi_generator = {
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_sip_pubsub_register_body_generator(&mwi_generator)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_nat.c b/res/res_pjsip_nat.c
index 4231a1ec3..1d42805d8 100644
--- a/res/res_pjsip_nat.c
+++ b/res/res_pjsip_nat.c
@@ -357,18 +357,12 @@ static int unload_module(void)
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
if (ast_sip_register_service(&nat_module)) {
ast_log(LOG_ERROR, "Could not register NAT module for incoming and outgoing requests\n");
return AST_MODULE_LOAD_DECLINE;
}
- if (ast_sip_session_register_supplement(&nat_supplement)) {
- ast_log(LOG_ERROR, "Could not register NAT session supplement for incoming and outgoing INVITE requests\n");
- unload_module();
- return AST_MODULE_LOAD_DECLINE;
- }
+ ast_sip_session_register_supplement(&nat_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -378,5 +372,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP NAT Support",
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_notify.c b/res/res_pjsip_notify.c
index 9767c56b5..253cf9ac8 100644
--- a/res/res_pjsip_notify.c
+++ b/res/res_pjsip_notify.c
@@ -987,8 +987,6 @@ static int manager_notify(struct mansession *s, const struct message *m)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
if (aco_info_init(&notify_cfg)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_one_touch_record_info.c b/res/res_pjsip_one_touch_record_info.c
index ef59fca13..50f2a3832 100644
--- a/res/res_pjsip_one_touch_record_info.c
+++ b/res/res_pjsip_one_touch_record_info.c
@@ -107,12 +107,7 @@ static struct ast_sip_session_supplement info_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
- if (ast_sip_session_register_supplement(&info_supplement)) {
- ast_log(LOG_ERROR, "Unable to register One Touch Recording supplement\n");
- return AST_MODULE_LOAD_DECLINE;
- }
+ ast_sip_session_register_supplement(&info_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -128,5 +123,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP INFO One Touch
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_outbound_authenticator_digest.c b/res/res_pjsip_outbound_authenticator_digest.c
index 54bba08de..063b4d3eb 100644
--- a/res/res_pjsip_outbound_authenticator_digest.c
+++ b/res/res_pjsip_outbound_authenticator_digest.c
@@ -205,8 +205,6 @@ static struct ast_sip_outbound_authenticator digest_authenticator = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
if (ast_sip_register_outbound_authenticator(&digest_authenticator)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_outbound_publish.c b/res/res_pjsip_outbound_publish.c
index b4e3320f4..75e74a26f 100644
--- a/res/res_pjsip_outbound_publish.c
+++ b/res/res_pjsip_outbound_publish.c
@@ -345,7 +345,6 @@ AST_RWLIST_HEAD_STATIC(publisher_handlers, ast_sip_event_publisher_handler);
static void sub_add_handler(struct ast_sip_event_publisher_handler *handler)
{
AST_RWLIST_INSERT_TAIL(&publisher_handlers, handler, next);
- ast_module_ref(ast_module_info->self);
}
static struct ast_sip_event_publisher_handler *find_publisher_handler_for_event_name(const char *event_name)
@@ -643,7 +642,6 @@ void ast_sip_unregister_event_publisher_handler(struct ast_sip_event_publisher_h
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&publisher_handlers, iter, next) {
if (handler == iter) {
AST_RWLIST_REMOVE_CURRENT(next);
- ast_module_unref(ast_module_info->self);
break;
}
}
@@ -1643,8 +1641,6 @@ static int unload_module(void)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
/* As of pjproject 2.4.5, PJSIP_MAX_URL_SIZE isn't exposed yet but we try anyway. */
ast_pjproject_get_buildopt("PJSIP_MAX_URL_SIZE", "%d", &pjsip_max_url_size);
diff --git a/res/res_pjsip_outbound_registration.c b/res/res_pjsip_outbound_registration.c
index 80b885fb4..4baf23c93 100644
--- a/res/res_pjsip_outbound_registration.c
+++ b/res/res_pjsip_outbound_registration.c
@@ -2177,8 +2177,6 @@ static int load_module(void)
{
struct ao2_container *new_states;
- CHECK_PJSIP_MODULE_LOADED();
-
shutdown_group = ast_serializer_shutdown_group_alloc();
if (!shutdown_group) {
return AST_MODULE_LOAD_DECLINE;
diff --git a/res/res_pjsip_path.c b/res/res_pjsip_path.c
index b245f159d..3c545f9d2 100644
--- a/res/res_pjsip_path.c
+++ b/res/res_pjsip_path.c
@@ -238,16 +238,8 @@ static struct ast_sip_session_supplement path_session_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
- if (ast_sip_register_supplement(&path_supplement)) {
- return AST_MODULE_LOAD_DECLINE;
- }
-
- if (ast_sip_session_register_supplement(&path_session_supplement)) {
- ast_sip_unregister_supplement(&path_supplement);
- return AST_MODULE_LOAD_DECLINE;
- }
+ ast_sip_register_supplement(&path_supplement);
+ ast_sip_session_register_supplement(&path_session_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -264,5 +256,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP Path Header Sup
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_phoneprov_provider.c b/res/res_pjsip_phoneprov_provider.c
index 11031c3c1..acb1e68b5 100644
--- a/res/res_pjsip_phoneprov_provider.c
+++ b/res/res_pjsip_phoneprov_provider.c
@@ -367,8 +367,6 @@ static int load_users(void)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
sorcery = ast_sip_get_sorcery();
ast_sorcery_apply_config(sorcery, "res_pjsip_phoneprov_provider");
diff --git a/res/res_pjsip_pidf_body_generator.c b/res/res_pjsip_pidf_body_generator.c
index 6426dfa9d..8bc062e08 100644
--- a/res/res_pjsip_pidf_body_generator.c
+++ b/res/res_pjsip_pidf_body_generator.c
@@ -116,8 +116,6 @@ static struct ast_sip_pubsub_body_generator pidf_body_generator = {
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_sip_pubsub_register_body_generator(&pidf_body_generator)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_pidf_digium_body_supplement.c b/res/res_pjsip_pidf_digium_body_supplement.c
index f855e2153..832f42302 100644
--- a/res/res_pjsip_pidf_digium_body_supplement.c
+++ b/res/res_pjsip_pidf_digium_body_supplement.c
@@ -95,8 +95,6 @@ static struct ast_sip_pubsub_body_supplement pidf_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_sip_pubsub_register_body_supplement(&pidf_supplement)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_pidf_eyebeam_body_supplement.c b/res/res_pjsip_pidf_eyebeam_body_supplement.c
index 6629aa3c1..15446bc52 100644
--- a/res/res_pjsip_pidf_eyebeam_body_supplement.c
+++ b/res/res_pjsip_pidf_eyebeam_body_supplement.c
@@ -92,8 +92,6 @@ static struct ast_sip_pubsub_body_supplement pidf_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_sip_pubsub_register_body_supplement(&pidf_supplement)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_publish_asterisk.c b/res/res_pjsip_publish_asterisk.c
index 13d7fd43b..220ba0bc5 100644
--- a/res/res_pjsip_publish_asterisk.c
+++ b/res/res_pjsip_publish_asterisk.c
@@ -855,8 +855,6 @@ static int regex_filter_handler(const struct aco_option *opt, struct ast_variabl
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_eid_is_empty(&ast_eid_default)) {
ast_log(LOG_ERROR, "Entity ID is not set.\n");
return AST_MODULE_LOAD_DECLINE;
diff --git a/res/res_pjsip_pubsub.c b/res/res_pjsip_pubsub.c
index af696b849..369e06d4c 100644
--- a/res/res_pjsip_pubsub.c
+++ b/res/res_pjsip_pubsub.c
@@ -2583,8 +2583,6 @@ int ast_sip_register_publish_handler(struct ast_sip_publish_handler *handler)
publish_add_handler(handler);
- ast_module_ref(ast_module_info->self);
-
return 0;
}
@@ -2597,7 +2595,6 @@ void ast_sip_unregister_publish_handler(struct ast_sip_publish_handler *handler)
if (handler == iter) {
AST_RWLIST_REMOVE_CURRENT(next);
ao2_cleanup(handler->publications);
- ast_module_unref(ast_module_info->self);
break;
}
}
@@ -2611,7 +2608,6 @@ static void sub_add_handler(struct ast_sip_subscription_handler *handler)
{
AST_RWLIST_WRLOCK(&subscription_handlers);
AST_RWLIST_INSERT_TAIL(&subscription_handlers, handler, next);
- ast_module_ref(ast_module_info->self);
AST_RWLIST_UNLOCK(&subscription_handlers);
}
@@ -2670,7 +2666,6 @@ void ast_sip_unregister_subscription_handler(struct ast_sip_subscription_handler
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&subscription_handlers, iter, next) {
if (handler == iter) {
AST_RWLIST_REMOVE_CURRENT(next);
- ast_module_unref(ast_module_info->self);
break;
}
}
@@ -5378,8 +5373,6 @@ static int load_module(void)
static const pj_str_t str_PUBLISH = { "PUBLISH", 7 };
struct ast_sorcery *sorcery;
- CHECK_PJSIP_MODULE_LOADED();
-
sorcery = ast_sip_get_sorcery();
if (!(sched = ast_sched_context_create())) {
diff --git a/res/res_pjsip_refer.c b/res/res_pjsip_refer.c
index 3100993de..5e0141b09 100644
--- a/res/res_pjsip_refer.c
+++ b/res/res_pjsip_refer.c
@@ -1202,8 +1202,6 @@ static int load_module(void)
{
const pj_str_t str_norefersub = { "norefersub", 10 };
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
pjsip_replaces_init_module(ast_sip_get_pjsip_endpoint());
pjsip_xfer_init_module(ast_sip_get_pjsip_endpoint());
pjsip_endpt_add_capability(ast_sip_get_pjsip_endpoint(), NULL, PJSIP_H_SUPPORTED, NULL, 1, &str_norefersub);
diff --git a/res/res_pjsip_registrar.c b/res/res_pjsip_registrar.c
index 7277a5f4f..00981fb77 100644
--- a/res/res_pjsip_registrar.c
+++ b/res/res_pjsip_registrar.c
@@ -1095,14 +1095,10 @@ static int load_module(void)
{
const pj_str_t STR_REGISTER = { "REGISTER", 8 };
- CHECK_PJPROJECT_MODULE_LOADED();
-
ast_pjproject_get_buildopt("PJ_MAX_HOSTNAME", "%d", &pj_max_hostname);
/* As of pjproject 2.4.5, PJSIP_MAX_URL_SIZE isn't exposed yet but we try anyway. */
ast_pjproject_get_buildopt("PJSIP_MAX_URL_SIZE", "%d", &pjsip_max_url_size);
- CHECK_PJSIP_MODULE_LOADED();
-
if (ast_sip_register_service(&registrar_module)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_registrar_expire.c b/res/res_pjsip_registrar_expire.c
index 85e3fb859..e89ea0332 100644
--- a/res/res_pjsip_registrar_expire.c
+++ b/res/res_pjsip_registrar_expire.c
@@ -137,8 +137,6 @@ static int unload_module(void)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
ast_sorcery_observer_add(ast_sip_get_sorcery(), "global", &expiration_global_observer);
ast_sorcery_reload_object(ast_sip_get_sorcery(), "global");
diff --git a/res/res_pjsip_rfc3326.c b/res/res_pjsip_rfc3326.c
index 8b8035efc..6c02a176c 100644
--- a/res/res_pjsip_rfc3326.c
+++ b/res/res_pjsip_rfc3326.c
@@ -138,8 +138,6 @@ static struct ast_sip_session_supplement rfc3326_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
ast_sip_session_register_supplement(&rfc3326_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -155,5 +153,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP RFC3326 Support
.load = load_module,
.unload = unload_module,
.load_pri = AST_MODPRI_APP_DEPEND,
- .requires = "res_pjsip",
+ .requires = "res_pjsip,res_pjsip_session",
);
diff --git a/res/res_pjsip_sdp_rtp.c b/res/res_pjsip_sdp_rtp.c
index 3cc97644a..ce8ed82df 100644
--- a/res/res_pjsip_sdp_rtp.c
+++ b/res/res_pjsip_sdp_rtp.c
@@ -1928,8 +1928,6 @@ static int unload_module(void)
*/
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
if (ast_check_ipv6()) {
ast_sockaddr_parse(&address_rtp, "::", 0);
} else {
diff --git a/res/res_pjsip_send_to_voicemail.c b/res/res_pjsip_send_to_voicemail.c
index 06c3edc03..d68960275 100644
--- a/res/res_pjsip_send_to_voicemail.c
+++ b/res/res_pjsip_send_to_voicemail.c
@@ -215,12 +215,7 @@ static struct ast_sip_session_supplement refer_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
- if (ast_sip_session_register_supplement(&refer_supplement)) {
- ast_log(LOG_ERROR, "Unable to register Send to Voicemail supplement\n");
- return AST_MODULE_LOAD_DECLINE;
- }
+ ast_sip_session_register_supplement(&refer_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c
index 8247fbaaa..4d4ed4770 100644
--- a/res/res_pjsip_session.c
+++ b/res/res_pjsip_session.c
@@ -124,7 +124,7 @@ int ast_sip_session_register_sdp_handler(struct ast_sip_session_sdp_handler *han
}
AST_LIST_INSERT_TAIL(&handler_list->list, handler, next);
ast_debug(1, "Registered SDP stream handler '%s' for stream type '%s'\n", handler->id, stream_type);
- ast_module_ref(ast_module_info->self);
+
return 0;
}
@@ -141,7 +141,7 @@ int ast_sip_session_register_sdp_handler(struct ast_sip_session_sdp_handler *han
return -1;
}
ast_debug(1, "Registered SDP stream handler '%s' for stream type '%s'\n", handler->id, stream_type);
- ast_module_ref(ast_module_info->self);
+
return 0;
}
@@ -156,7 +156,6 @@ static int remove_handler(void *obj, void *arg, void *data, int flags)
if (!strcmp(iter->id, handler->id)) {
AST_LIST_REMOVE_CURRENT(next);
ast_debug(1, "Unregistered SDP stream handler '%s' for stream type '%s'\n", handler->id, stream_type);
- ast_module_unref(ast_module_info->self);
}
}
AST_LIST_TRAVERSE_SAFE_END;
@@ -4156,8 +4155,6 @@ static int load_module(void)
{
pjsip_endpoint *endpt;
- CHECK_PJSIP_MODULE_LOADED();
-
if (!ast_sip_get_sorcery() || !ast_sip_get_pjsip_endpoint()) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_sips_contact.c b/res/res_pjsip_sips_contact.c
index 41b26df7d..7c0ff4360 100644
--- a/res/res_pjsip_sips_contact.c
+++ b/res/res_pjsip_sips_contact.c
@@ -90,8 +90,6 @@ static int unload_module(void)
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
if (ast_sip_register_service(&sips_contact_module)) {
return AST_MODULE_LOAD_DECLINE;
}
diff --git a/res/res_pjsip_t38.c b/res/res_pjsip_t38.c
index 7b7cd9910..249472ba9 100644
--- a/res/res_pjsip_t38.c
+++ b/res/res_pjsip_t38.c
@@ -1023,18 +1023,13 @@ static int unload_module(void)
*/
static int load_module(void)
{
- CHECK_PJSIP_SESSION_MODULE_LOADED();
-
if (ast_check_ipv6()) {
ast_sockaddr_parse(&address, "::", 0);
} else {
ast_sockaddr_parse(&address, "0.0.0.0", 0);
}
- if (ast_sip_session_register_supplement(&t38_supplement)) {
- ast_log(LOG_ERROR, "Unable to register T.38 session supplement\n");
- goto end;
- }
+ ast_sip_session_register_supplement(&t38_supplement);
if (ast_sip_session_register_sdp_handler(&image_sdp_handler, "image")) {
ast_log(LOG_ERROR, "Unable to register SDP handler for image stream type\n");
diff --git a/res/res_pjsip_transport_management.c b/res/res_pjsip_transport_management.c
index acffb86dc..afaa24815 100644
--- a/res/res_pjsip_transport_management.c
+++ b/res/res_pjsip_transport_management.c
@@ -323,8 +323,6 @@ static int load_module(void)
{
struct ao2_container *transports;
- CHECK_PJSIP_MODULE_LOADED();
-
transports = ao2_container_alloc(TRANSPORTS_BUCKETS, monitored_transport_hash_fn,
monitored_transport_cmp_fn);
if (!transports) {
diff --git a/res/res_pjsip_transport_websocket.c b/res/res_pjsip_transport_websocket.c
index af1345f35..974b15087 100644
--- a/res/res_pjsip_transport_websocket.c
+++ b/res/res_pjsip_transport_websocket.c
@@ -471,8 +471,6 @@ static struct ast_sip_session_supplement websocket_supplement = {
static int load_module(void)
{
- CHECK_PJSIP_MODULE_LOADED();
-
/*
* We only need one transport type name (ws) defined. Firefox
* and Chrome do not support anything other than secure websockets
@@ -490,10 +488,7 @@ static int load_module(void)
return AST_MODULE_LOAD_DECLINE;
}
- if (ast_sip_session_register_supplement(&websocket_supplement)) {
- ast_sip_unregister_service(&websocket_module);
- return AST_MODULE_LOAD_DECLINE;
- }
+ ast_sip_session_register_supplement(&websocket_supplement);
if (ast_websocket_add_protocol("sip", websocket_cb)) {
ast_sip_session_unregister_supplement(&websocket_supplement);
diff --git a/res/res_pjsip_xpidf_body_generator.c b/res/res_pjsip_xpidf_body_generator.c
index f7c84db3d..7395fd9b7 100644
--- a/res/res_pjsip_xpidf_body_generator.c
+++ b/res/res_pjsip_xpidf_body_generator.c
@@ -148,8 +148,6 @@ static void unregister_all(void)
static int load_module(void)
{
- CHECK_PJSIP_PUBSUB_MODULE_LOADED();
-
if (ast_sip_pubsub_register_body_generator(&xpidf_body_generator)) {
goto fail;
}
diff --git a/res/res_pktccops.c b/res/res_pktccops.c
index 3a12285cb..9beabfb3d 100644
--- a/res/res_pktccops.c
+++ b/res/res_pktccops.c
@@ -1472,9 +1472,6 @@ static int load_module(void)
ast_cli_register_multiple(cli_pktccops, sizeof(cli_pktccops) / sizeof(struct ast_cli_entry));
restart_pktc_thread();
- /* For Optional API. */
- ast_module_shutdown_ref(AST_MODULE_SELF);
-
return 0;
}
diff --git a/res/res_smdi.c b/res/res_smdi.c
index 76e70c274..1d4826a6a 100644
--- a/res/res_smdi.c
+++ b/res/res_smdi.c
@@ -1405,9 +1405,6 @@ static int load_module(void)
ast_custom_function_register(&smdi_msg_retrieve_function);
ast_custom_function_register(&smdi_msg_function);
- /* For Optional API. */
- ast_module_shutdown_ref(AST_MODULE_SELF);
-
return AST_MODULE_LOAD_SUCCESS;
}
diff --git a/res/res_stasis.c b/res/res_stasis.c
index a60ec5fde..dcd74141f 100644
--- a/res/res_stasis.c
+++ b/res/res_stasis.c
@@ -1302,8 +1302,6 @@ static void remove_stasis_end_published(struct ast_channel *chan)
int stasis_app_exec(struct ast_channel *chan, const char *app_name, int argc,
char *argv[])
{
- SCOPED_MODULE_USE(ast_module_info->self);
-
RAII_VAR(struct stasis_app *, app, NULL, ao2_cleanup);
RAII_VAR(struct stasis_app_control *, control, NULL, control_unlink);
struct ast_bridge *bridge = NULL;
@@ -1654,11 +1652,6 @@ void stasis_app_register_event_source(struct stasis_app_event_source *obj)
{
AST_RWLIST_WRLOCK(&event_sources);
AST_LIST_INSERT_TAIL(&event_sources, obj, next);
- /* only need to bump the module ref on non-core sources because the
- core ones are [un]registered by this module. */
- if (!stasis_app_is_core_event_source(obj)) {
- ast_module_ref(ast_module_info->self);
- }
AST_RWLIST_UNLOCK(&event_sources);
}
@@ -1670,9 +1663,6 @@ void stasis_app_unregister_event_source(struct stasis_app_event_source *obj)
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&event_sources, source, next) {
if (source == obj) {
AST_RWLIST_REMOVE_CURRENT(next);
- if (!stasis_app_is_core_event_source(obj)) {
- ast_module_unref(ast_module_info->self);
- }
break;
}
}
@@ -2036,16 +2026,6 @@ enum stasis_app_user_event_res stasis_app_user_event(const char *app_name,
return STASIS_APP_USER_OK;
}
-void stasis_app_ref(void)
-{
- ast_module_ref(ast_module_info->self);
-}
-
-void stasis_app_unref(void)
-{
- ast_module_unref(ast_module_info->self);
-}
-
static int unload_module(void)
{
stasis_app_unregister_event_sources();
diff --git a/res/res_stasis_mailbox.c b/res/res_stasis_mailbox.c
index 3d0e9db69..3f6bede8f 100644
--- a/res/res_stasis_mailbox.c
+++ b/res/res_stasis_mailbox.c
@@ -143,17 +143,11 @@ enum stasis_mailbox_result stasis_app_mailbox_delete(
static int load_module(void)
{
- /* Must be done first */
- ast_mwi_external_ref();
-
return AST_MODULE_LOAD_SUCCESS;
}
static int unload_module(void)
{
- /* Must be done last */
- ast_mwi_external_unref();
-
return 0;
}
diff --git a/res/res_statsd.c b/res/res_statsd.c
index 8565e41cb..3e0815218 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);