From a19352aa23092a6b5b61b9e83022f3123c5d5a3c Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 18 Nov 2011 17:01:03 -0600 Subject: [PATCH] FS-3688 revert --- libs/sofia-sip/.update | 2 +- .../libsofia-sip-ua/nua/nua_session.c | 33 ++++++++++--------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/libs/sofia-sip/.update b/libs/sofia-sip/.update index 0295e8c914..79031274b7 100644 --- a/libs/sofia-sip/.update +++ b/libs/sofia-sip/.update @@ -1 +1 @@ -Thu Nov 17 11:43:21 CST 2011 +Wed Nov 2 08:58:40 CDT 2011 diff --git a/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c b/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c index 7ea7708b96..bc80310f23 100644 --- a/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c +++ b/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c @@ -3801,23 +3801,24 @@ static int nua_bye_client_request(nua_client_request_t *cr, ss = nua_dialog_usage_private(du); reason = ss->ss_reason; - - nua_dialog_usage_reset_refresh(du); - ss->ss_timer->timer_set = 0; - - /* Terminate server transactions associated with session, too. */ - for (sr = du->du_dialog->ds_sr; sr; sr = sr->sr_next) { - if (sr->sr_usage == du && nua_server_request_is_pending(sr) && - sr->sr_method != sip_method_bye) { - sr_status(sr, SIP_486_BUSY_HERE); - nua_server_respond(sr, 0); - } - } - error = nua_base_client_trequest(cr, msg, sip, - SIPTAG_REASON_STR(reason), - TAG_NEXT(tags)); - + SIPTAG_REASON_STR(reason), + TAG_NEXT(tags)); + + if (error == 0) { + nua_dialog_usage_reset_refresh(du); + ss->ss_timer->timer_set = 0; + + /* Terminate server transactions associated with session, too. */ + for (sr = du->du_dialog->ds_sr; sr; sr = sr->sr_next) { + if (sr->sr_usage == du && nua_server_request_is_pending(sr) && + sr->sr_method != sip_method_bye) { + sr_status(sr, SIP_486_BUSY_HERE); + nua_server_respond(sr, 0); + } + } + } + return error; } static int nua_bye_client_response(nua_client_request_t *cr,