From: Anthony Minessale Date: Fri, 13 Apr 2012 20:58:49 +0000 (-0500) Subject: FS-3994 --resolve regression from FS-3596:b2d2353c X-Git-Tag: v1.2-rc1~17^2~224 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9c288870e2aab4bf5b7a75fb757c447a2ffc7dbf;p=thirdparty%2Ffreeswitch.git FS-3994 --resolve regression from FS-3596:b2d2353c --- 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)