From 58eacb4f0f623755a7ddeec96ccb9b7c2a6f9dd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Fri, 17 Mar 2023 12:46:38 +0800 Subject: [PATCH] fix recv nil --- server.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server.c b/server.c index ffeaa5f..b410d17 100644 --- a/server.c +++ b/server.c @@ -207,10 +207,11 @@ static void accept_client() { return; } HANDLE_CLIENTS: + char c; for(i = 0; i < THREADCNT; i++) { if(timers[i].touch && timers[i].accept_fd) { if(FD_ISSET(timers[i].accept_fd, &rdfds)) { - if(!handle_accept(&timers[i])) clean_timer(&timers[i]); + if(recv(timers[i].accept_fd, &c, 1, MSG_PEEK) <= 0 || !handle_accept(&timers[i])) clean_timer(&timers[i]); else FD_SET(timers[i].accept_fd, &tmpfds); } else if(FD_ISSET(timers[i].accept_fd, &erfds)) { printf("Close@%d due to error\n", i);