X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=acceptor.cpp;h=b3cd3c1bd92824d27840ef52a04b95bed22e5c62;hp=29a7f8c1f675d356f2af42047b473a9b82f44169;hb=d5f3f941faaf113936113fc2105bf59913e9125e;hpb=e7ea72a8382981ab038460fb32341d0c25c77c8a diff --git a/acceptor.cpp b/acceptor.cpp index 29a7f8c..b3cd3c1 100644 --- a/acceptor.cpp +++ b/acceptor.cpp @@ -21,12 +21,13 @@ extern ServerPool *servers; int create_server_socket(const sockaddr_in6 &addr, SocketType socket_type) { + // NOTE: We set as non-blocking, so the acceptor thread can notice that we want to shut it down. int server_sock; if (socket_type == TCP_SOCKET) { - server_sock = socket(PF_INET6, SOCK_STREAM, IPPROTO_TCP); + server_sock = socket(PF_INET6, SOCK_STREAM | SOCK_NONBLOCK, IPPROTO_TCP); } else { assert(socket_type == UDP_SOCKET); - server_sock = socket(PF_INET6, SOCK_DGRAM, IPPROTO_UDP); + server_sock = socket(PF_INET6, SOCK_DGRAM | SOCK_NONBLOCK, IPPROTO_UDP); } if (server_sock == -1) { log_perror("socket"); @@ -46,12 +47,6 @@ int create_server_socket(const sockaddr_in6 &addr, SocketType socket_type) exit(1); } - // Set as non-blocking, so the acceptor thread can notice that we want to shut it down. - if (ioctl(server_sock, FIONBIO, &one) == -1) { - log_perror("ioctl(FIONBIO)"); - exit(1); - } - if (bind(server_sock, reinterpret_cast(&addr), sizeof(addr)) == -1) { log_perror("bind"); exit(1);