Author: rco
Date: 2008-06-17 10:44:20 +0200 (Tue, 17 Jun 2008)
New Revision: 1019

Modified:
   trunk/core/plug-in/sipctrl/trans_layer.cpp
Log:
- fixed bugs related to non 200 ACK retransmission.


Modified: trunk/core/plug-in/sipctrl/trans_layer.cpp
===================================================================
--- trunk/core/plug-in/sipctrl/trans_layer.cpp  2008-06-12 14:43:58 UTC (rev 
1018)
+++ trunk/core/plug-in/sipctrl/trans_layer.cpp  2008-06-17 08:44:20 UTC (rev 
1019)
@@ -1137,7 +1137,6 @@
     *c++ = LF;
 
     DBG("About to send ACK\n");
-//     DBG("About to send ACK: \n<%.*s>\n",ack_len,ack_buf);
 
     assert(transport);
     int send_err = transport->send(&inv->remote_ip,ack_buf,ack_len);
@@ -1145,12 +1144,12 @@
        ERROR("Error from transport layer\n");
        delete ack_buf;
     }
-    
-    if (t->retr_buf)
-      delete [] t->retr_buf;
-
-    t->retr_buf = ack_buf;
-    t->retr_len = ack_len;
+    else {
+       delete [] t->retr_buf;
+       t->retr_buf = ack_buf;
+       t->retr_len = ack_len;
+       memcpy(&t->retr_addr,&inv->remote_ip,sizeof(sockaddr_storage));
+    }
 }
 
 void trans_layer::send_200_ack(sip_msg* reply, sip_trans* t)

_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to