[asterisk-commits] file: branch 1.6.1 r218932 - in /branches/1.6.1: ./ channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Sep 16 14:24:37 CDT 2009


Author: file
Date: Wed Sep 16 14:24:31 2009
New Revision: 218932

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=218932
Log:
Merged revisions 218918 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

........
  r218918 | file | 2009-09-16 13:31:47 -0500 (Wed, 16 Sep 2009) | 5 lines
  
  On TCP and TLS connections do not attempt to stop retransmission of the packet internally.
  
  This was preventing responses from being properly processed because the packet was not being found
  causing handle_response to return prematurely.
........

Modified:
    branches/1.6.1/   (props changed)
    branches/1.6.1/channels/chan_sip.c

Propchange: branches/1.6.1/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: branches/1.6.1/channels/chan_sip.c
URL: http://svn.asterisk.org/svn-view/asterisk/branches/1.6.1/channels/chan_sip.c?view=diff&rev=218932&r1=218931&r2=218932
==============================================================================
--- branches/1.6.1/channels/chan_sip.c (original)
+++ branches/1.6.1/channels/chan_sip.c Wed Sep 16 14:24:31 2009
@@ -16911,7 +16911,6 @@
 	struct ast_channel *owner;
 	int sipmethod;
 	int res = 1;
-	int ack_res;
 	const char *c = get_header(req, "Cseq");
 	/* GCC 4.2 complains if I try to cast c as a char * when passing it to ast_skip_nonblanks, so make a copy of it */
 	char *c_copy = ast_strdupa(c);
@@ -16927,16 +16926,20 @@
 	if (owner) 
 		owner->hangupcause = hangup_sip2cause(resp);
 
-	/* Acknowledge whatever it is destined for */
-	if ((resp >= 100) && (resp <= 199)) {
-		ack_res = __sip_semi_ack(p, seqno, 0, sipmethod);
-	} else {
-		ack_res = __sip_ack(p, seqno, 0, sipmethod);
-	}
-
-	if (ack_res == FALSE) {
-		append_history(p, "Ignore", "Ignoring this retransmit\n");
-		return;
+	if (p->socket.type == SIP_TRANSPORT_UDP) {
+		int ack_res;
+
+		/* Acknowledge whatever it is destined for */
+		if ((resp >= 100) && (resp <= 199)) {
+			ack_res = __sip_semi_ack(p, seqno, 0, sipmethod);
+		} else {
+			ack_res = __sip_ack(p, seqno, 0, sipmethod);
+		}
+
+		if (ack_res == FALSE) {
+			append_history(p, "Ignore", "Ignoring this retransmit\n");
+			return;
+		}
 	}
 
 	/* If this is a NOTIFY for a subscription clear the flag that indicates that we have a NOTIFY pending */




More information about the asterisk-commits mailing list