From 44b6d0a15ba235cbfef3a8420c799b5051b05033 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Wed, 14 Feb 2007 14:45:41 +0000 Subject: [PATCH] Fixed FD task deleting in TCP connecting. --- lib/silcutil/unix/silcunixnet.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/silcutil/unix/silcunixnet.c b/lib/silcutil/unix/silcunixnet.c index f7ddb18d..ba1736dd 100644 --- a/lib/silcutil/unix/silcunixnet.c +++ b/lib/silcutil/unix/silcunixnet.c @@ -476,7 +476,6 @@ SILC_TASK_CALLBACK(silc_net_connect_wait) { SilcNetConnect conn = context; SILC_FSM_EVENT_SIGNAL(&conn->event); - silc_schedule_task_del_by_fd(schedule, conn->sock); } SILC_FSM_STATE(silc_net_connect_st_start) @@ -601,6 +600,8 @@ SILC_FSM_STATE(silc_net_connect_st_connected) if (conn->aborted) { /** Aborted */ + silc_schedule_unset_listen_fd(schedule, conn->sock); + silc_schedule_task_del_by_fd(schedule, conn->sock); silc_fsm_next(fsm, silc_net_connect_st_finish); return SILC_FSM_CONTINUE; } @@ -608,8 +609,8 @@ SILC_FSM_STATE(silc_net_connect_st_connected) ret = silc_net_get_socket_opt(conn->sock, SOL_SOCKET, SO_ERROR, &opt, &optlen); - silc_schedule_task_del_by_fd(schedule, conn->sock); silc_schedule_unset_listen_fd(schedule, conn->sock); + silc_schedule_task_del_by_fd(schedule, conn->sock); if (ret != 0 || opt != 0) { if (conn->retry) { -- 2.24.0