summary refs log tree commit diff
path: root/hittpd.c
diff options
context:
space:
mode:
Diffstat (limited to 'hittpd.c')
-rw-r--r--hittpd.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/hittpd.c b/hittpd.c
index 3438102..0a243b4 100644
--- a/hittpd.c
+++ b/hittpd.c
@@ -1164,8 +1164,13 @@ main(int argc, char *argv[])
 						accept_client(i, connfd);
 					break;
 				}
-			if (i == MAX_CLIENTS)
+			if (i == MAX_CLIENTS) {
 				printf("too many clients\n");
+				int connfd = accept(listenfd, 0, 0);
+				if (connfd >= 0)
+					close(connfd);
+				continue;
+			}
 			if (i > maxi)
 				maxi = i; /* max index in client[] array */
 			if (--nready <= 0)