]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Thu May 22 10:45:32 EDT 2008 Pekka.Pessi@nokia.com
authorMichael Jerris <mike@jerris.com>
Sun, 25 May 2008 15:23:11 +0000 (15:23 +0000)
committerMichael Jerris <mike@jerris.com>
Sun, 25 May 2008 15:23:11 +0000 (15:23 +0000)
  * nua_session.c: handling answer better by nua_prack_server_init()

  Fixed klocwork issue, too.

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8639 d0543943-73ff-0310-b7d9-9358b9ac24b2

libs/sofia-sip/.update
libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c

index 23bb02b6da6fc121b00574231da2709fe6698b91..23428c5d558e00c54006cabe4bd2c35e3ee235b2 100644 (file)
@@ -1 +1 @@
-Sun May 25 11:22:40 EDT 2008
+Sun May 25 11:23:06 EDT 2008
index 1481f88b349a81040eb1bc4248be51cf1fed17c5..571d069332e1e786199812e523f73839c1126d49 100644 (file)
@@ -2694,19 +2694,22 @@ int nua_prack_server_init(nua_server_request_t *sr)
     return sr->sr_status;
 
   if (sr->sr_sdp) {
-    nua_session_usage_t *ss = nua_dialog_usage_private(sr->sr_usage);
+    nua_session_usage_t *ss = NUA_DIALOG_USAGE_PRIVATE(sr->sr_usage);
+    char const *offeranswer;
 
     /* XXX - check for overlap? */
     
-    if (sri->sr_offer_sent)
-      sr->sr_answer_recv = 1, ss->ss_oa_recv = Answer;
-    else 
-      sr->sr_offer_recv = 1, ss->ss_oa_recv = Offer;
+    if (sri->sr_offer_sent && !sri->sr_answer_recv)
+      sr->sr_answer_recv = 1, sri->sr_answer_recv = 1, offeranswer = Answer;
+    else
+      sr->sr_offer_recv = 1, offeranswer = Offer;
+
+    ss->ss_oa_recv = offeranswer;
 
     if (nh->nh_soa &&
        soa_set_remote_sdp(nh->nh_soa, NULL, sr->sr_sdp, sr->sr_sdp_len) < 0) {
       SU_DEBUG_5(("nua(%p): %s server: error parsing %s\n", (void *)nh,
-                 "PRACK", Offer));
+                 "PRACK", offeranswer));
       return 
        sr->sr_status = soa_error_as_sip_response(nh->nh_soa, &sr->sr_phrase);
     }