Change a bit of logic in peer expiry back to the way it used to be
authorJoshua Colp <jcolp@digium.com>
Mon, 12 Jun 2006 02:54:32 +0000 (02:54 +0000)
committerJoshua Colp <jcolp@digium.com>
Mon, 12 Jun 2006 02:54:32 +0000 (02:54 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@33595 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_iax2.c

index 87c665f..27560a2 100644 (file)
@@ -5518,9 +5518,6 @@ static void __expire_registry(void *data)
        AST_LIST_LOCK(&peers);
        AST_LIST_TRAVERSE_SAFE_BEGIN(&peers, p, entry) {
                if (!strcasecmp(p->name, name)) {
-                       /* 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;
                }
@@ -5546,8 +5543,8 @@ static void __expire_registry(void *data)
                iax2_regfunk(p->name, 0);
 
        if (ast_test_flag(p, IAX_RTAUTOCLEAR)) {
-               /* We are already gone from the list, so we can just destroy ourselves */
-               destroy_peer(p);
+               ast_set_flag(p, IAX_DELME);
+               prune_peers();
        }
 }