diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 87c665fb7dcc65f6427f8d7a96cfdcd032caf504..27560a29b54d6dc576c1ef9302727fec15bc1175 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -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(); } }