From 9c288870e2aab4bf5b7a75fb757c447a2ffc7dbf Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 13 Apr 2012 15:58:49 -0500 Subject: [PATCH] FS-3994 --resolve regression from FS-3596:b2d2353c --- src/mod/endpoints/mod_sofia/sofia_reg.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/sofia_reg.c b/src/mod/endpoints/mod_sofia/sofia_reg.c index 7b85161da3..9252071908 100644 --- a/src/mod/endpoints/mod_sofia/sofia_reg.c +++ b/src/mod/endpoints/mod_sofia/sofia_reg.c @@ -127,22 +127,20 @@ static void sofia_reg_kill_sub(sofia_gateway_t *gateway_ptr) static void sofia_reg_kill_reg(sofia_gateway_t *gateway_ptr) { - if (gateway_ptr->nh) { - nua_handle_bind(gateway_ptr->nh, NULL); - } - - if (gateway_ptr->state != REG_STATE_REGED && gateway_ptr->state != REG_STATE_UNREGISTER) { - if (gateway_ptr->nh) { - nua_handle_destroy(gateway_ptr->nh); - gateway_ptr->nh = NULL; - } + if (!gateway_ptr->nh) { return; } - if (gateway_ptr->nh) { + if (gateway_ptr->state == REG_STATE_REGED || gateway_ptr->state == REG_STATE_UNREGISTER) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "UN-Registering %s\n", gateway_ptr->name); nua_unregister(gateway_ptr->nh, NUTAG_URL(gateway_ptr->register_url), NUTAG_REGISTRAR(gateway_ptr->register_proxy), TAG_END()); + } else { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Destroying registration handle for %s\n", gateway_ptr->name); } + + nua_handle_bind(gateway_ptr->nh, NULL); + nua_handle_destroy(gateway_ptr->nh); + gateway_ptr->nh = NULL; } void sofia_reg_fire_custom_gateway_state_event(sofia_gateway_t *gateway, int status, const char *phrase)