[Freeswitch-svn] [commit] r11872 - in freeswitch/trunk/libs/sofia-sip: . libsofia-sip-ua/nua
FreeSWITCH SVN
mikej at freeswitch.org
Wed Feb 11 09:38:16 PST 2009
Author: mikej
Date: Wed Feb 11 11:38:16 2009
New Revision: 11872
Log:
Tue Feb 10 07:03:27 CST 2009 Pekka Pessi <first.last at nokia.com>
* nua_session.c: fixed race condition with ACK
Ignore-this: 37d3e74b169e8a154b9734dbade74d84
Response message got destroyed after sending ACK if stack was run in
multithreaded mode.
Modified:
freeswitch/trunk/libs/sofia-sip/.update
freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c
Modified: freeswitch/trunk/libs/sofia-sip/.update
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/.update (original)
+++ freeswitch/trunk/libs/sofia-sip/.update Wed Feb 11 11:38:16 2009
@@ -1 +1 @@
-Wed Feb 11 11:37:16 CST 2009
+Wed Feb 11 11:38:10 CST 2009
Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c (original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c Wed Feb 11 11:38:16 2009
@@ -1021,13 +1021,14 @@
nua_dialog_state_t *ds = nh->nh_ds;
nua_dialog_usage_t *du = cr->cr_usage;
nua_session_usage_t *ss = nua_dialog_usage_private(du);
+ msg_t *response = nta_outgoing_getresponse(orq);
unsigned next_state;
int error;
nh_referral_respond(nh, status, phrase); /* XXX - restarting after 401/407 */
nua_stack_event(nh->nh_nua, nh,
- nta_outgoing_getresponse(orq),
+ response,
cr->cr_event,
status, phrase,
tags);
@@ -1049,6 +1050,8 @@
return 1;
}
+ response = msg_ref_create(response); /* Keep reference to contents of sip */
+
if (orq != cr->cr_orq && cr->cr_orq) { /* Being restarted */
next_state = nua_callstate_calling;
}
@@ -1144,6 +1147,8 @@
signal_call_state_change(nh, ss, status, phrase, next_state);
+ msg_destroy(response);
+
return 1;
}
More information about the Freeswitch-svn
mailing list