mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-02 20:08:17 +00:00
Just to be safe, disable all the scheduled items after deleting a scheduler entry (rizzo)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@47842 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1401,6 +1401,7 @@ static int __sip_ack(struct sip_pvt *p, int seqno, int resp, int sipmethod)
|
||||
if (sipdebug && option_debug > 3)
|
||||
ast_log(LOG_DEBUG, "** SIP TIMER: Cancelling retransmit of packet (reply received) Retransid #%d\n", cur->retransid);
|
||||
ast_sched_del(sched, cur->retransid);
|
||||
cur->retransid = -1;
|
||||
}
|
||||
free(cur);
|
||||
res = 0;
|
||||
@@ -1456,8 +1457,8 @@ static int __sip_semi_ack(struct sip_pvt *p, int seqno, int resp, int sipmethod)
|
||||
if (option_debug > 3 && sipdebug)
|
||||
ast_log(LOG_DEBUG, "*** SIP TIMER: Cancelling retransmission #%d - %s (got response)\n", cur->retransid, msg);
|
||||
ast_sched_del(sched, cur->retransid);
|
||||
cur->retransid = -1;
|
||||
}
|
||||
cur->retransid = -1;
|
||||
res = 0;
|
||||
break;
|
||||
}
|
||||
@@ -1656,6 +1657,7 @@ static void sip_destroy_peer(struct sip_peer *peer)
|
||||
}
|
||||
if (peer->expire > -1)
|
||||
ast_sched_del(sched, peer->expire);
|
||||
|
||||
if (peer->pokeexpire > -1)
|
||||
ast_sched_del(sched, peer->pokeexpire);
|
||||
register_peer_exten(peer, 0);
|
||||
@@ -6101,8 +6103,10 @@ static enum parse_register_result parse_register_contact(struct sip_pvt *pvt, st
|
||||
else
|
||||
p->username[0] = '\0';
|
||||
|
||||
if (p->expire > -1)
|
||||
if (p->expire > -1) {
|
||||
ast_sched_del(sched, p->expire);
|
||||
p->expire = -1;
|
||||
}
|
||||
if ((expiry < 1) || (expiry > max_expiry))
|
||||
expiry = max_expiry;
|
||||
if (!ast_test_flag(p, SIP_REALTIME))
|
||||
@@ -9846,6 +9850,7 @@ static int handle_response_register(struct sip_pvt *p, int resp, char *rest, str
|
||||
if (global_regattempts_max)
|
||||
p->registry->regattempts = global_regattempts_max+1;
|
||||
ast_sched_del(sched, r->timeout);
|
||||
r->timeout = -1;
|
||||
ast_set_flag(p, SIP_NEEDDESTROY);
|
||||
break;
|
||||
case 404: /* Not found */
|
||||
@@ -9855,6 +9860,7 @@ static int handle_response_register(struct sip_pvt *p, int resp, char *rest, str
|
||||
ast_set_flag(p, SIP_NEEDDESTROY);
|
||||
r->call = NULL;
|
||||
ast_sched_del(sched, r->timeout);
|
||||
r->timeout = -1;
|
||||
break;
|
||||
case 407: /* Proxy auth */
|
||||
if ((p->authtries == MAX_AUTHTRIES) || do_register_auth(p, req, "Proxy-Authenticate", "Proxy-Authorization")) {
|
||||
@@ -9869,6 +9875,7 @@ static int handle_response_register(struct sip_pvt *p, int resp, char *rest, str
|
||||
ast_set_flag(p, SIP_NEEDDESTROY);
|
||||
r->call = NULL;
|
||||
ast_sched_del(sched, r->timeout);
|
||||
r->timeout = -1;
|
||||
break;
|
||||
case 200: /* 200 OK */
|
||||
if (!r) {
|
||||
|
||||
Reference in New Issue
Block a user