summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2009-08-14 13:23:22 +0000
committerNanang Izzuddin <nanang@teluu.com>2009-08-14 13:23:22 +0000
commitc71027eba79ab798185f0dfe59b4c9418aa6b855 (patch)
tree4dc8c9d81d9d159da847fdb722dbda3b4199fec3
parentf5e84f87d9b090df2ca06396fdda10569058748a (diff)
Ticket #877: Fixed bug flip-flop pools shouldn't be swapped when SDP negotiation fails.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2879 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjsip/src/pjsip-ua/sip_inv.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c
index e7eb1c58..5633e61f 100644
--- a/pjsip/src/pjsip-ua/sip_inv.c
+++ b/pjsip/src/pjsip-ua/sip_inv.c
@@ -1489,8 +1489,12 @@ static pj_status_t inv_negotiate_sdp( pjsip_inv_session *inv )
if (mod_inv.cb.on_media_update && inv->notify)
(*mod_inv.cb.on_media_update)(inv, status);
- /* Swap the flip-flop pool, and reset the new provisional pool */
- swap_pool(&inv->pool_prov, &inv->pool_active);
+ /* Swap the flip-flop pool when SDP negotiation success. */
+ if (status == PJ_SUCCESS) {
+ swap_pool(&inv->pool_prov, &inv->pool_active);
+ }
+
+ /* Reset the provisional pool regardless SDP negotiation result. */
pj_pool_reset(inv->pool_prov);
return status;