From 820d5d619214742a093169b51746099a4035ea8a Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Wed, 17 Feb 2016 22:22:14 -0800 Subject: [PATCH] Switch to more consistently setting sockets non-blocking. --- incoming.c | 4 +++- send.c | 6 ------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/incoming.c b/incoming.c index 9d328f3..6b9fd6b 100644 --- a/incoming.c +++ b/incoming.c @@ -1,3 +1,5 @@ +#define _GNU_SOURCE + #include #include #include @@ -26,7 +28,7 @@ static void incoming_handler(struct peer *peer) { struct sockaddr peer_addr, local_addr; socklen_t peer_addrlen = sizeof(peer_addr), local_addrlen = sizeof(local_addr); - int fd = accept(incoming->peer.fd, &peer_addr, &peer_addrlen); + int fd = accept4(incoming->peer.fd, &peer_addr, &peer_addrlen, SOCK_NONBLOCK); if (fd == -1) { fprintf(stderr, "I %s: Failed to accept new connection on %s/%s: %s\n", incoming->id, incoming->node, incoming->service, strerror(errno)); return; diff --git a/send.c b/send.c index 0a9d51e..1c1b278 100644 --- a/send.c +++ b/send.c @@ -4,7 +4,6 @@ #include #include #include -#include #include #include "common.h" @@ -98,11 +97,6 @@ struct serializer *send_get_serializer(char *name) { } void send_add(int fd, struct serializer *serializer) { - int flags = fcntl(fd, F_GETFL, 0); - assert(flags >= 0); - flags |= O_NONBLOCK; - assert(fcntl(fd, F_SETFL, flags) == 0); - if (!send_hello(fd, serializer)) { fprintf(stderr, "S xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx: Failed to write hello\n"); return;