diff options
Diffstat (limited to 'res/res_pjsip/pjsip_configuration.c')
-rw-r--r-- | res/res_pjsip/pjsip_configuration.c | 15 |
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); |