From e7b18536c439ce5725fefb70910cb9c30ed959c5 Mon Sep 17 00:00:00 2001 From: Mark Spencer <markster@digium.com> Date: Thu, 24 Mar 2005 05:02:49 +0000 Subject: [PATCH] Fix SIP/IAX caching (bug #3671) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5249 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_iax2.c | 6 +++++- channels/chan_sip.c | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 1aa9085311..6c852cf018 100755 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -2566,8 +2566,12 @@ static struct iax2_peer *realtime_peer(const char *peername) peerl.peers = peer; ast_mutex_unlock(&peerl.lock); ast_copy_flags(peer, &globalflags, IAX_RTAUTOCLEAR|IAX_RTCACHEFRIENDS); - if (ast_test_flag(peer, IAX_RTAUTOCLEAR)) + if (ast_test_flag(peer, IAX_RTAUTOCLEAR)) { + if (peer->expire > -1) { + ast_sched_del(sched, peer->expire); + } peer->expire = ast_sched_add(sched, (global_rtautoclear) * 1000, expire_registry, (void *)peer); + } } else { ast_set_flag(peer, IAX_TEMPONLY); } diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 5704a10f1f..236b5bad5b 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -1292,6 +1292,9 @@ static struct sip_peer *realtime_peer(const char *peername, struct sockaddr_in * if(ast_test_flag((&global_flags_page2), SIP_PAGE2_RTCACHEFRIENDS)) { ast_copy_flags((&peer->flags_page2),(&global_flags_page2), SIP_PAGE2_RTAUTOCLEAR|SIP_PAGE2_RTCACHEFRIENDS); if(ast_test_flag((&global_flags_page2), SIP_PAGE2_RTAUTOCLEAR)) { + if (peer->expire > -1) { + ast_sched_del(sched, peer->expire); + } peer->expire = ast_sched_add(sched, (global_rtautoclear) * 1000, expire_register, (void *)peer); } ASTOBJ_CONTAINER_LINK(&peerl,peer); -- GitLab