From 69f117c9560a1c5965e3e10b6f5cc98cf777e85e Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Fri, 30 Dec 2022 17:23:18 +0800 Subject: [PATCH] check socket connected on unexpected stage --- src/sf_nio.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/sf_nio.c b/src/sf_nio.c index 498a5d6..0883802 100644 --- a/src/sf_nio.c +++ b/src/sf_nio.c @@ -471,7 +471,20 @@ static inline int check_task(struct fast_task_info *task, return -1; } - return task->nio_stages.current == expect_stage ? 0 : EAGAIN; + if (task->nio_stages.current == expect_stage) { + return 0; + } + + if (tcp_socket_connected(task->event.fd)) { + return EAGAIN; + } else { + logDebug("file: "__FILE__", line: %d, " + "client ip: %s, connection is closed", + __LINE__, task->client_ip); + + ioevent_add_to_deleted_list(task); + return -1; + } } int sf_client_sock_read(int sock, short event, void *arg)