mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-19 11:42:27 +00:00
res_pjsip: Add REF_DEBUG info to module references.
This provides better information to REF_DEBUG log for troubleshooting when the system is unable to unload res_pjsip.so during shutdown due to module references. ASTERISK-27306 Change-Id: I63197ad33d1aebe60d12e0a6561718bdc54e4612
This commit is contained in:
@@ -925,7 +925,9 @@ enum ast_sip_contact_filter {
|
|||||||
* \retval 0 Success
|
* \retval 0 Success
|
||||||
* \retval -1 Failure
|
* \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
|
* 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
|
* \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
|
* \brief Register a SIP authenticator
|
||||||
@@ -2615,14 +2619,20 @@ struct ast_sip_supplement {
|
|||||||
* \retval 0 Success
|
* \retval 0 Success
|
||||||
* \retval -1 Failure
|
* \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
|
* \brief Unregister a an supplement to SIP out of dialog processing
|
||||||
*
|
*
|
||||||
* \param supplement The supplement to unregister
|
* \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.
|
* \brief Retrieve the global MWI taskprocessor high water alert trigger level.
|
||||||
|
@@ -578,14 +578,20 @@ void ast_sip_session_unregister_sdp_handler(struct ast_sip_session_sdp_handler *
|
|||||||
* \retval 0 Success
|
* \retval 0 Success
|
||||||
* \retval -1 Failure
|
* \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
|
* \brief Unregister a an supplement to SIP session processing
|
||||||
*
|
*
|
||||||
* \param supplement The supplement to unregister
|
* \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
|
* \brief Add supplements to a SIP session
|
||||||
|
@@ -2422,25 +2422,20 @@ static int register_service_noref(void *data)
|
|||||||
return 0;
|
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)
|
int internal_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_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)
|
static int unregister_service_noref(void *data)
|
||||||
@@ -2454,25 +2449,16 @@ static int unregister_service_noref(void *data)
|
|||||||
return 0;
|
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)
|
int internal_sip_unregister_service(pjsip_module *module)
|
||||||
{
|
{
|
||||||
return ast_sip_push_task_synchronous(NULL, unregister_service_noref, &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;
|
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);
|
internal_sip_register_supplement(supplement);
|
||||||
ast_module_ref(ast_module_info->self);
|
__ast_module_ref(ast_module_info->self, file, line, func);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -3562,10 +3549,11 @@ int internal_sip_unregister_supplement(struct ast_sip_supplement *supplement)
|
|||||||
return res;
|
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)) {
|
if (!internal_sip_unregister_supplement(supplement)) {
|
||||||
ast_module_unref(ast_module_info->self);
|
__ast_module_unref(ast_module_info->self, file, line, func);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
global:
|
global:
|
||||||
LINKER_SYMBOL_PREFIXast_sip_*;
|
LINKER_SYMBOL_PREFIXast_sip_*;
|
||||||
|
LINKER_SYMBOL_PREFIX__ast_sip_*;
|
||||||
LINKER_SYMBOL_PREFIXast_copy_pj_str;
|
LINKER_SYMBOL_PREFIXast_copy_pj_str;
|
||||||
LINKER_SYMBOL_PREFIXast_copy_pj_str2;
|
LINKER_SYMBOL_PREFIXast_copy_pj_str2;
|
||||||
LINKER_SYMBOL_PREFIXast_pjsip_rdata_get_endpoint;
|
LINKER_SYMBOL_PREFIXast_pjsip_rdata_get_endpoint;
|
||||||
|
@@ -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);
|
internal_sip_session_register_supplement(supplement);
|
||||||
ast_module_ref(AST_MODULE_SELF);
|
__ast_module_ref(AST_MODULE_SELF, file, line, func);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -82,10 +83,11 @@ int internal_sip_session_unregister_supplement(struct ast_sip_session_supplement
|
|||||||
return res;
|
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)) {
|
if (!internal_sip_session_unregister_supplement(supplement)) {
|
||||||
ast_module_unref(AST_MODULE_SELF);
|
__ast_module_unref(AST_MODULE_SELF, file, line, func);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
global:
|
global:
|
||||||
LINKER_SYMBOL_PREFIXast_sip_session_*;
|
LINKER_SYMBOL_PREFIXast_sip_session_*;
|
||||||
|
LINKER_SYMBOL_PREFIX__ast_sip_session_*;
|
||||||
LINKER_SYMBOL_PREFIXast_sip_dialog_get_session;
|
LINKER_SYMBOL_PREFIXast_sip_dialog_get_session;
|
||||||
LINKER_SYMBOL_PREFIXast_sip_channel_pvt_alloc;
|
LINKER_SYMBOL_PREFIXast_sip_channel_pvt_alloc;
|
||||||
local:
|
local:
|
||||||
|
Reference in New Issue
Block a user