Merged revisions 130170 via svnmerge from

https://origsvn.digium.com/svn/asterisk/trunk

................
r130170 | tilghman | 2008-07-11 13:52:42 -0500 (Fri, 11 Jul 2008) | 15 lines

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)

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@130171 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.0
Tilghman Lesher 18 years ago
parent 2d96db5069
commit f5e6714b87

@ -8003,12 +8003,21 @@ static int socket_process(struct iax2_thread *thread)
* Discussed in the following thread: * Discussed in the following thread:
* http://lists.digium.com/pipermail/asterisk-dev/2008-May/033217.html * http://lists.digium.com/pipermail/asterisk-dev/2008-May/033217.html
*/ */
if (f.frametype != AST_FRAME_IAX ||
(f.subclass != IAX_COMMAND_NEW && /* Get the destination call number */
f.subclass != IAX_COMMAND_PING && dcallno = ntohs(fh->dcallno) & ~IAX_FLAG_RETRANS;
f.subclass != IAX_COMMAND_LAGRQ)) {
/* Get the destination call number */ if (f.frametype == AST_FRAME_IAX &&
dcallno = ntohs(fh->dcallno) & ~IAX_FLAG_RETRANS; (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) || 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) || (f.subclass == IAX_COMMAND_POKE) || (f.subclass == IAX_COMMAND_FWDOWNL) ||

Loading…
Cancel
Save