mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-20 11:43:52 +00:00
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
This commit is contained in:
@@ -5369,6 +5369,7 @@ static int complete_transfer(int callno, struct iax_ies *ies)
|
|||||||
memset(&pvt->transfer, 0, sizeof(pvt->transfer));
|
memset(&pvt->transfer, 0, sizeof(pvt->transfer));
|
||||||
/* Reset sequence numbers */
|
/* Reset sequence numbers */
|
||||||
pvt->oseqno = 0;
|
pvt->oseqno = 0;
|
||||||
|
pvt->rseqno = 0;
|
||||||
pvt->iseqno = 0;
|
pvt->iseqno = 0;
|
||||||
pvt->aseqno = 0;
|
pvt->aseqno = 0;
|
||||||
pvt->peercallno = peercallno;
|
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
|
/* Handle implicit ACKing unless this is an INVAL, and only if this is
|
||||||
from the real peer, not the transfer peer */
|
from the real peer, not the transfer peer */
|
||||||
if (!inaddrcmp(&sin, &iaxs[fr.callno]->addr) &&
|
if (!inaddrcmp(&sin, &iaxs[fr.callno]->addr) &&
|
||||||
(((f.subclass != IAX_COMMAND_INVAL)) ||
|
((f.subclass != IAX_COMMAND_INVAL) ||
|
||||||
(f.frametype != AST_FRAME_IAX))) {
|
(f.frametype != AST_FRAME_IAX))) {
|
||||||
unsigned char x;
|
unsigned char x;
|
||||||
/* XXX This code is not very efficient. Surely there is a better way which still
|
/* XXX This code is not very efficient. Surely there is a better way which still
|
||||||
properly handles boundary conditions? XXX */
|
properly handles boundary conditions? XXX */
|
||||||
|
Reference in New Issue
Block a user