[svn-commits] tilghman: trunk r130170 - in /trunk: ./ channels/chan_iax2.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri Jul 11 13:52:43 CDT 2008


Author: tilghman
Date: Fri Jul 11 13:52:42 2008
New Revision: 130170

URL: http://svn.digium.com/view/asterisk?view=rev&rev=130170
Log:
Merged revisions 130169 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r130169 | tilghman | 2008-07-11 13:51:56 -0500 (Fri, 11 Jul 2008) | 7 lines

Ensure that a destination callno of 0 will not match for frames that do not
start a dialog (new, lagrq, and ping).
(closes issue #12963)
 Reported by: russellb
 Patches: 
       chan_iax2_dup_new_fix4.patch uploaded by jpgrayson (license 492)

........

Modified:
    trunk/   (props changed)
    trunk/channels/chan_iax2.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Modified: trunk/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/chan_iax2.c?view=diff&rev=130170&r1=130169&r2=130170
==============================================================================
--- trunk/channels/chan_iax2.c (original)
+++ trunk/channels/chan_iax2.c Fri Jul 11 13:52:42 2008
@@ -8046,12 +8046,21 @@
 		 * Discussed in the following thread:
 		 * http://lists.digium.com/pipermail/asterisk-dev/2008-May/033217.html 
 		 */
-		if (f.frametype != AST_FRAME_IAX ||
-				(f.subclass != IAX_COMMAND_NEW &&
-				 f.subclass != IAX_COMMAND_PING &&
-				 f.subclass != IAX_COMMAND_LAGRQ)) {
-			/* Get the destination call number */
-			dcallno = ntohs(fh->dcallno) & ~IAX_FLAG_RETRANS;
+
+		/* Get the destination call number */
+		dcallno = ntohs(fh->dcallno) & ~IAX_FLAG_RETRANS;
+
+		if (f.frametype == AST_FRAME_IAX &&
+				(f.subclass == IAX_COMMAND_NEW ||
+				 f.subclass == IAX_COMMAND_PING ||
+				 f.subclass == IAX_COMMAND_LAGRQ)) {
+			dcallno = 0;
+		} else if (!dcallno) {
+			/* All other full-frames must have a non-zero dcallno,
+			 * We silently drop this frame since it cannot be a
+			 * valid match to an existing call session.
+			 */
+			return 1;
 		}
 		if ((f.frametype == AST_FRAME_IAX) && ((f.subclass == IAX_COMMAND_NEW) || (f.subclass == IAX_COMMAND_REGREQ) ||
 						       (f.subclass == IAX_COMMAND_POKE) || (f.subclass == IAX_COMMAND_FWDOWNL) ||




More information about the svn-commits mailing list