mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-29 18:19:30 +00:00
simplify sip_pretend_ack also removing a bug in the existing
code which called ast_skip_blanks erroneously. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@26799 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1738,27 +1738,20 @@ static int __sip_ack(struct sip_pvt *p, int seqno, int resp, int sipmethod, int
|
||||
}
|
||||
|
||||
/*! \brief Pretend to ack all packets */
|
||||
/* maybe the lock on p is not strictly necessary but there might be a race */
|
||||
static int __sip_pretend_ack(struct sip_pvt *p)
|
||||
{
|
||||
struct sip_pkt *cur = NULL;
|
||||
|
||||
while (p->packets) {
|
||||
int method;
|
||||
if (cur == p->packets) {
|
||||
ast_log(LOG_WARNING, "Have a packet that doesn't want to give up! %s\n", sip_methods[cur->method].text);
|
||||
return -1;
|
||||
}
|
||||
cur = p->packets;
|
||||
if (cur->method)
|
||||
__sip_ack(p, p->packets->seqno, (ast_test_flag(p->packets, FLAG_RESPONSE)), cur->method, FALSE);
|
||||
else { /* Unknown packet type */
|
||||
char *c;
|
||||
char method[128];
|
||||
|
||||
ast_copy_string(method, p->packets->data, sizeof(method));
|
||||
c = ast_skip_blanks(method); /* XXX what ? */
|
||||
*c = '\0';
|
||||
__sip_ack(p, p->packets->seqno, (ast_test_flag(p->packets, FLAG_RESPONSE)), find_sip_method(method), FALSE);
|
||||
}
|
||||
method = (cur->method) ? cur->method : find_sip_method(cur->data);
|
||||
__sip_ack(p, cur->seqno, ast_test_flag(cur, FLAG_RESPONSE), method, FALSE);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user