summary refs log tree commit diff
path: root/listen.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-10-23 17:16:04 -0400
committerJune McEnroe <june@causal.agency>2019-10-23 17:16:04 -0400
commit64eeda05604fe8a039699de8bee2b677a683ab33 (patch)
treeff8afc7c3ba975cb7b5601ac994684f03758a373 /listen.c
parentClean up state.c and factor out parsing (diff)
downloadpounce-64eeda05604fe8a039699de8bee2b677a683ab33.tar.gz
pounce-64eeda05604fe8a039699de8bee2b677a683ab33.zip
Set clients non-blocking
Diffstat (limited to '')
-rw-r--r--listen.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/listen.c b/listen.c
index 1179a8b..2d83462 100644
--- a/listen.c
+++ b/listen.c
@@ -15,6 +15,7 @@
  */
 
 #include <err.h>
+#include <fcntl.h>
 #include <netdb.h>
 #include <netinet/in.h>
 #include <stdlib.h>
@@ -80,6 +81,7 @@ size_t listenBind(int fds[], size_t cap, const char *host, const char *port) {
 int listenAccept(struct tls **client, int fd) {
 	int sock = accept(fd, NULL, NULL);
 	if (sock < 0) err(EX_IOERR, "accept");
+	fcntl(sock, F_SETFL, O_NONBLOCK);
 
 	int yes = 1;
 	int error = setsockopt(sock, SOL_SOCKET, SO_NOSIGPIPE, &yes, sizeof(yes));