summaryrefslogtreecommitdiff
path: root/include/asterisk
diff options
context:
space:
mode:
authorKinsey Moore <kmoore@digium.com>2014-10-16 16:32:25 +0000
committerKinsey Moore <kmoore@digium.com>2014-10-16 16:32:25 +0000
commit86a4ce495783434f6d4fef5484b44147e4b3a7b7 (patch)
treed2841fad45e99da1ede5aaad23646a3462c62692 /include/asterisk
parenta770ca168df5052c873a2ca298aafe8bb88277a2 (diff)
PJSIP: Enforce module load dependencies
This enforces that res_pjsip, res_pjsip_session, and res_pjsip_pubsub have loaded properly before attempting to load any modules that depend on them since the module loader system is not currently capable of resolving module dependencies on its own. ASTERISK-24312 #close Reported by: Dafi Ni Review: https://reviewboard.asterisk.org/r/4062/ ........ Merged revisions 425690 from http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged revisions 425691 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@425700 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk')
-rw-r--r--include/asterisk/res_pjsip.h9
-rw-r--r--include/asterisk/res_pjsip_pubsub.h9
-rw-r--r--include/asterisk/res_pjsip_session.h9
3 files changed, 27 insertions, 0 deletions
diff --git a/include/asterisk/res_pjsip.h b/include/asterisk/res_pjsip.h
index fdb2105cf..302a15d73 100644
--- a/include/asterisk/res_pjsip.h
+++ b/include/asterisk/res_pjsip.h
@@ -1944,4 +1944,13 @@ void ast_sip_unregister_supplement(struct ast_sip_supplement *supplement);
*/
char *ast_sip_get_debug(void);
+/*! \brief Determines whether the res_pjsip module is loaded */
+#define CHECK_PJSIP_MODULE_LOADED() \
+ do { \
+ if (!ast_module_check("res_pjsip.so") \
+ || !ast_sip_get_pjsip_endpoint()) { \
+ return AST_MODULE_LOAD_DECLINE; \
+ } \
+ } while(0)
+
#endif /* _RES_PJSIP_H */
diff --git a/include/asterisk/res_pjsip_pubsub.h b/include/asterisk/res_pjsip_pubsub.h
index aac4261c1..d32b246af 100644
--- a/include/asterisk/res_pjsip_pubsub.h
+++ b/include/asterisk/res_pjsip_pubsub.h
@@ -674,4 +674,13 @@ const char *ast_sip_subscription_get_body_type(struct ast_sip_subscription *sub)
*/
const char *ast_sip_subscription_get_body_subtype(struct ast_sip_subscription *sub);
+/*! \brief Determines whether the res_pjsip_pubsub module is loaded */
+#define CHECK_PJSIP_PUBSUB_MODULE_LOADED() \
+ do { \
+ CHECK_PJSIP_MODULE_LOADED(); \
+ if (!ast_module_check("res_pjsip_pubsub.so")) { \
+ return AST_MODULE_LOAD_DECLINE; \
+ } \
+ } while(0)
+
#endif /* RES_PJSIP_PUBSUB_H */
diff --git a/include/asterisk/res_pjsip_session.h b/include/asterisk/res_pjsip_session.h
index 3344a6b38..d50b43179 100644
--- a/include/asterisk/res_pjsip_session.h
+++ b/include/asterisk/res_pjsip_session.h
@@ -636,4 +636,13 @@ struct ast_sip_session *ast_sip_dialog_get_session(pjsip_dialog *dlg);
*/
void ast_sip_session_resume_reinvite(struct ast_sip_session *session);
+/*! \brief Determines whether the res_pjsip_session module is loaded */
+#define CHECK_PJSIP_SESSION_MODULE_LOADED() \
+ do { \
+ CHECK_PJSIP_MODULE_LOADED(); \
+ if (!ast_module_check("res_pjsip_session.so")) { \
+ return AST_MODULE_LOAD_DECLINE; \
+ } \
+ } while(0)
+
#endif /* _RES_PJSIP_SESSION_H */