diff options
-rw-r--r-- | sandbox.c | 1 | ||||
-rw-r--r-- | server.c | 4 |
2 files changed, 4 insertions, 1 deletions
@@ -153,6 +153,7 @@ sandbox() #endif SC_ALLOW(epoll_pwait), SC_ALLOW(epoll_ctl), + SC_ALLOW(accept), SC_ALLOW(accept4), SC_ALLOW(read), SC_ALLOW(openat), @@ -980,12 +980,14 @@ do_accept(int sock, short et, void *d) saddr = (struct sockaddr*)&addr; len = sizeof(addr); - if ((fd = accept4(sock, saddr, &len, SOCK_NONBLOCK)) == -1) { + if ((fd = accept(sock, saddr, &len)) == -1) { if (errno == EWOULDBLOCK || errno == EAGAIN) return; fatal("accept: %s", strerror(errno)); } + mark_nonblock(fd); + for (i = 0; i < MAX_USERS; ++i) { c = &s->clients[i]; if (c->fd == -1) { |