diff options
-rw-r--r-- | include/asterisk/res_pjsip.h | 18 | ||||
-rw-r--r-- | include/asterisk/res_pjsip_session.h | 10 | ||||
-rw-r--r-- | res/res_pjsip.c | 48 | ||||
-rw-r--r-- | res/res_pjsip.exports.in | 1 | ||||
-rw-r--r-- | res/res_pjsip/pjsip_session.c | 10 | ||||
-rw-r--r-- | res/res_pjsip_session.exports.in | 1 |
6 files changed, 48 insertions, 40 deletions
diff --git a/include/asterisk/res_pjsip.h b/include/asterisk/res_pjsip.h index b6403d6fa..e6ccf0a1d 100644 --- a/include/asterisk/res_pjsip.h +++ b/include/asterisk/res_pjsip.h @@ -925,7 +925,9 @@ enum ast_sip_contact_filter { * \retval 0 Success * \retval -1 Failure */ -int ast_sip_register_service(pjsip_module *module); +#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); /*! * This is the opposite of ast_sip_register_service(). Unregistering a @@ -934,7 +936,9 @@ int ast_sip_register_service(pjsip_module *module); * * \param module The PJSIP module to unregister */ -void ast_sip_unregister_service(pjsip_module *module); +#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); /*! * \brief Register a SIP authenticator @@ -2615,14 +2619,20 @@ struct ast_sip_supplement { * \retval 0 Success * \retval -1 Failure */ -int ast_sip_register_supplement(struct ast_sip_supplement *supplement); +#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); /*! * \brief Unregister a an supplement to SIP out of dialog processing * * \param supplement The supplement to unregister */ -void ast_sip_unregister_supplement(struct ast_sip_supplement *supplement); +#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); /*! * \brief Retrieve the global MWI taskprocessor high water alert trigger level. diff --git a/include/asterisk/res_pjsip_session.h b/include/asterisk/res_pjsip_session.h index 70f94682e..b7a22b937 100644 --- a/include/asterisk/res_pjsip_session.h +++ b/include/asterisk/res_pjsip_session.h @@ -578,14 +578,20 @@ void ast_sip_session_unregister_sdp_handler(struct ast_sip_session_sdp_handler * * \retval 0 Success * \retval -1 Failure */ -int ast_sip_session_register_supplement(struct ast_sip_session_supplement *supplement); +#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); /*! * \brief Unregister a an supplement to SIP session processing * * \param supplement The supplement to unregister */ -void ast_sip_session_unregister_supplement(struct ast_sip_session_supplement *supplement); +#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); /*! * \brief Add supplements to a SIP session diff --git a/res/res_pjsip.c b/res/res_pjsip.c index ac275bd08..fb919b32b 100644 --- a/res/res_pjsip.c +++ b/res/res_pjsip.c @@ -2422,25 +2422,20 @@ static int register_service_noref(void *data) return 0; } -static int register_service(void *data) -{ - int res; - - if (!(res = register_service_noref(data))) { - ast_module_ref(ast_module_info->self); - } - - return res; -} - int internal_sip_register_service(pjsip_module *module) { return ast_sip_push_task_synchronous(NULL, register_service_noref, &module); } -int ast_sip_register_service(pjsip_module *module) +int __ast_sip_register_service(pjsip_module *module, const char *file, int line, const char *func) { - return ast_sip_push_task_synchronous(NULL, register_service, &module); + 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) @@ -2454,25 +2449,16 @@ static int unregister_service_noref(void *data) return 0; } -static int unregister_service(void *data) -{ - int res; - - if (!(res = unregister_service_noref(data))) { - ast_module_unref(ast_module_info->self); - } - - return res; -} - int internal_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) +void __ast_sip_unregister_service(pjsip_module *module, const char *file, int line, const char *func) { - ast_sip_push_task_synchronous(NULL, unregister_service, &module); + if (!ast_sip_push_task_synchronous(NULL, unregister_service_noref, &module)) { + __ast_module_unref(ast_module_info->self, file, line, func); + } } static struct ast_sip_authenticator *registered_authenticator; @@ -3536,10 +3522,11 @@ void internal_sip_register_supplement(struct ast_sip_supplement *supplement) } } -int ast_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); + __ast_module_ref(ast_module_info->self, file, line, func); return 0; } @@ -3562,10 +3549,11 @@ int internal_sip_unregister_supplement(struct ast_sip_supplement *supplement) return res; } -void ast_sip_unregister_supplement(struct ast_sip_supplement *supplement) +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); + __ast_module_unref(ast_module_info->self, file, line, func); } } diff --git a/res/res_pjsip.exports.in b/res/res_pjsip.exports.in index 4adecd419..7ac2b7e83 100644 --- a/res/res_pjsip.exports.in +++ b/res/res_pjsip.exports.in @@ -1,6 +1,7 @@ { global: LINKER_SYMBOL_PREFIXast_sip_*; + LINKER_SYMBOL_PREFIX__ast_sip_*; LINKER_SYMBOL_PREFIXast_copy_pj_str; LINKER_SYMBOL_PREFIXast_copy_pj_str2; LINKER_SYMBOL_PREFIXast_pjsip_rdata_get_endpoint; diff --git a/res/res_pjsip/pjsip_session.c b/res/res_pjsip/pjsip_session.c index cea72436a..4f3e3be55 100644 --- a/res/res_pjsip/pjsip_session.c +++ b/res/res_pjsip/pjsip_session.c @@ -56,10 +56,11 @@ void internal_sip_session_register_supplement(struct ast_sip_session_supplement } } -int ast_sip_session_register_supplement(struct ast_sip_session_supplement *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); + __ast_module_ref(AST_MODULE_SELF, file, line, func); return 0; } @@ -82,10 +83,11 @@ int internal_sip_session_unregister_supplement(struct ast_sip_session_supplement return res; } -void ast_sip_session_unregister_supplement(struct ast_sip_session_supplement *supplement) +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); + __ast_module_unref(AST_MODULE_SELF, file, line, func); } } diff --git a/res/res_pjsip_session.exports.in b/res/res_pjsip_session.exports.in index b7bd21b89..d65b247c7 100644 --- a/res/res_pjsip_session.exports.in +++ b/res/res_pjsip_session.exports.in @@ -1,6 +1,7 @@ { global: LINKER_SYMBOL_PREFIXast_sip_session_*; + LINKER_SYMBOL_PREFIX__ast_sip_session_*; LINKER_SYMBOL_PREFIXast_sip_dialog_get_session; LINKER_SYMBOL_PREFIXast_sip_channel_pvt_alloc; local: |