diff options
author | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-05-26 20:00:48 +0000 |
---|---|---|
committer | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-05-26 20:00:48 +0000 |
commit | 4189c29a159b9d7d9cefdc2906da7e97dfb41d60 (patch) | |
tree | 6033dec2045d76a97c8d0d3d70db3436a617165b /channels | |
parent | 25f8c236a419b3afed194e4f2067cba96ffdc3a3 (diff) |
Few more expire_registry changes
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@30607 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_iax2.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 125d908f0..1a91dc759 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -1893,7 +1893,7 @@ static int iax2_prune_realtime(int fd, int argc, char *argv[]) } else if ((peer = find_peer(argv[3], 0))) { if(ast_test_flag(peer, IAX_RTCACHEFRIENDS)) { ast_set_flag(peer, IAX_RTAUTOCLEAR); - expire_registry(peer); + expire_registry(peer->name); ast_cli(fd, "OK peer %s was removed from the cache.\n", argv[3]); } else { ast_cli(fd, "SORRY peer %s is not eligible for this operation.\n", argv[3]); @@ -2531,7 +2531,7 @@ static struct iax2_peer *realtime_peer(const char *peername, struct sockaddr_in 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, peer); + peer->expire = ast_sched_add(sched, (global_rtautoclear) * 1000, expire_registry, (void*)peer->name); } AST_LIST_LOCK(&peers); AST_LIST_INSERT_HEAD(&peers, peer, entry); @@ -5521,6 +5521,7 @@ static void __expire_registry(void *data) /* If we are set to auto clear then remove ourselves */ if (ast_test_flag(p, IAX_RTAUTOCLEAR)) AST_LIST_REMOVE_CURRENT(&peers, entry); + p->expire = -1; break; } } @@ -5552,9 +5553,6 @@ static void __expire_registry(void *data) static int expire_registry(void *data) { - struct iax2_peer *p = data; - /* Reset expire notice */ - p->expire = -1; #ifdef SCHED_MULTITHREADED if (schedule_action(__expire_registry, data)) #endif |