summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
Diffstat (limited to 'res')
-rw-r--r--res/res_pjsip/pjsip_configuration.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/res/res_pjsip/pjsip_configuration.c b/res/res_pjsip/pjsip_configuration.c
index 364ed7e19..4642c5e66 100644
--- a/res/res_pjsip/pjsip_configuration.c
+++ b/res/res_pjsip/pjsip_configuration.c
@@ -1404,7 +1404,11 @@ void ast_res_pjsip_destroy_configuration(void)
ast_sorcery_unref(sip_sorcery);
}
-int ast_res_pjsip_reload_configuration(void)
+/*!
+ * \internal
+ * \brief Reload configuration within a PJSIP thread
+ */
+static int reload_configuration_task(void *obj)
{
if (sip_sorcery) {
ast_sorcery_reload(sip_sorcery);
@@ -1412,6 +1416,15 @@ int ast_res_pjsip_reload_configuration(void)
return 0;
}
+int ast_res_pjsip_reload_configuration(void)
+{
+ if (ast_sip_push_task(NULL, reload_configuration_task, NULL)) {
+ ast_log(LOG_WARNING, "Failed to reload PJSIP configuration\n");
+ }
+
+ return 0;
+}
+
static void subscription_configuration_destroy(struct ast_sip_endpoint_subscription_configuration *subscription)
{
ast_string_field_free_memory(&subscription->mwi);