diff options
author | Kevin Harwell <kharwell@digium.com> | 2015-01-14 23:15:23 +0000 |
---|---|---|
committer | Kevin Harwell <kharwell@digium.com> | 2015-01-14 23:15:23 +0000 |
commit | 49542a794ba178255447eedeb75106d9579e650b (patch) | |
tree | 888f29beb9f8cf99afca6907059aacdd19a6e495 /res/res_pjsip/include | |
parent | 67234b3ee2806126513abeecbe85d59e632c8fcf (diff) |
res_pjsip: make it unloadable
The res_pjsip module was previously unloadable. With this patch it can now
be unloaded.
This patch is based off the original patch on the issue (listed below) by Corey
Farrell with a few modifications. Namely, removed a few changes not required to
make the module unloadable and also fixed a bug that would cause asterisk to
crash on unloading.
This patch is the first step (should hopefully be followed by another/others at
some point) in allowing res_pjsip and the modules that depend on it to be
unloadable. At this time, res_pjsip and some of the modules that depend on
res_pjsip cannot be unloaded without causing problems of some sort.
The goal of this patch is to get res_pjsip and only res_pjsip to be able to
unload successfully and/or shutdown without incident (crashes, leaks, etc...).
Other dependent modules may still cause problems on unload.
Basically made sure, with the patch applied, that res_pjsip (with no other
dependent modules loaded) could be succesfully unloaded and Asterisk could
shutdown without any leaks or crashes that pertained directly to res_pjsip.
ASTERISK-24485 #close
Reported by: Corey Farrell
Review: https://reviewboard.asterisk.org/r/4311/
patches:
pjsip_unload-broken-r1.patch submitted by Corey Farrell (license 5909)
........
Merged revisions 430628 from http://svn.asterisk.org/svn/asterisk/branches/13
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@430629 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_pjsip/include')
-rw-r--r-- | res/res_pjsip/include/res_pjsip_private.h | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/res/res_pjsip/include/res_pjsip_private.h b/res/res_pjsip/include/res_pjsip_private.h index fa37c8c4b..b3d66dbb5 100644 --- a/res/res_pjsip/include/res_pjsip_private.h +++ b/res/res_pjsip/include/res_pjsip_private.h @@ -57,7 +57,15 @@ int ast_res_pjsip_init_contact_transports(void); * \retval 0 Success * \retval non-zero Failure */ -int ast_sip_initialize_outbound_authentication(void); +int internal_sip_initialize_outbound_authentication(void); + +/*! + * \brief Destroy outbound authentication support + * + * \retval 0 Success + * \retval non-zero Failure + */ +void internal_sip_destroy_outbound_authentication(void); /*! * \brief Initialize system configuration @@ -112,4 +120,24 @@ char *ast_sip_global_default_outbound_endpoint(void); int ast_sip_initialize_cli(void); void ast_sip_destroy_cli(void); +/*! + * \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 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); + #endif /* RES_PJSIP_PRIVATE_H_ */ |