re-initialize _all_ sequence numbers when transfer completes

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@7917 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.2-netsec
Kevin P. Fleming 20 years ago
parent 417438fea0
commit d8c5d338cb

@ -5369,6 +5369,7 @@ static int complete_transfer(int callno, struct iax_ies *ies)
memset(&pvt->transfer, 0, sizeof(pvt->transfer));
/* Reset sequence numbers */
pvt->oseqno = 0;
pvt->rseqno = 0;
pvt->iseqno = 0;
pvt->aseqno = 0;
pvt->peercallno = peercallno;
@ -6579,8 +6580,8 @@ static int socket_read(int *id, int fd, short events, void *cbdata)
/* Handle implicit ACKing unless this is an INVAL, and only if this is
from the real peer, not the transfer peer */
if (!inaddrcmp(&sin, &iaxs[fr.callno]->addr) &&
(((f.subclass != IAX_COMMAND_INVAL)) ||
(f.frametype != AST_FRAME_IAX))) {
((f.subclass != IAX_COMMAND_INVAL) ||
(f.frametype != AST_FRAME_IAX))) {
unsigned char x;
/* XXX This code is not very efficient. Surely there is a better way which still
properly handles boundary conditions? XXX */

Loading…
Cancel
Save