Module: sems
Branch: rco/offer_answer
Commit: ba620c40992891b75e67fadd18b72b1533af1d2a
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=ba620c40992891b75e67fadd18b72b1533af1d2a

Author: Raphael Coeffic <[email protected]>
Committer: Raphael Coeffic <[email protected]>
Date:   Mon May 23 14:17:19 2011 +0200

generate non-200-ACK on the fly instead of using the retransmission buffer.

---

 core/sip/trans_layer.cpp |   22 ++++------------------
 1 files changed, 4 insertions(+), 18 deletions(-)

diff --git a/core/sip/trans_layer.cpp b/core/sip/trans_layer.cpp
index f78c862..1bd4b4a 100644
--- a/core/sip/trans_layer.cpp
+++ b/core/sip/trans_layer.cpp
@@ -1308,8 +1308,8 @@ int _trans_layer::update_uac_reply(trans_bucket* bucket, 
sip_trans* t, sip_msg*
                goto pass_reply;
                
            case TS_COMPLETED:
-               // retransmit non-200 ACK
-               t->retransmit();
+               // generate a new non-200 ACK
+               send_non_200_ack(msg,t);
            default:
                goto end;
            }
@@ -1624,24 +1624,10 @@ void _trans_layer::send_non_200_ack(sip_msg* reply, 
sip_trans* t)
     int send_err = inv->local_socket->send(&inv->remote_ip,ack_buf,ack_len);
     if(send_err < 0){
        ERROR("Error from transport layer\n");
-       delete ack_buf;
     }
-    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));
-       t->retr_socket = inv->local_socket;
-    }
-}
+    delete ack_buf;
 
-// void _trans_layer::retransmit(sip_msg* msg)
-// {
-//     int send_err = msg->send();
-//     if(send_err < 0){
-//     ERROR("Error from transport layer\n");
-//     }
-// }
+}
 
 void _trans_layer::timer_expired(timer* t, trans_bucket* bucket, sip_trans* tr)
 {

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

Reply via email to