From 92e5245f0f8c07027b0cefaefa8c11f932dc1339 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 5 Nov 2009 05:01:41 +0000 Subject: [PATCH] reset handle on bad reg git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15365 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/sofia_reg.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/mod/endpoints/mod_sofia/sofia_reg.c b/src/mod/endpoints/mod_sofia/sofia_reg.c index 870b3079d0..381b5f7b83 100644 --- a/src/mod/endpoints/mod_sofia/sofia_reg.c +++ b/src/mod/endpoints/mod_sofia/sofia_reg.c @@ -1381,6 +1381,16 @@ void sofia_reg_handle_sip_r_register(int status, nua_t *nua, sofia_profile_t *profile, nua_handle_t *nh, sofia_private_t *sofia_private, sip_t const *sip, tagi_t tags[]) { + if (status >= 900) { + if (sofia_private && sofia_private->gateway) { + nua_handle_destroy(sofia_private->gateway->nh); + sofia_private->gateway->nh = NULL; + sofia_private->gateway->state = REG_STATE_UNREGED; + + } + return; + } + if (sofia_private && sofia_private->gateway) { reg_state_t ostate = sofia_private->gateway->state; switch (status) {