diff options
author | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2019-08-10 21:41:05 +0200 |
---|---|---|
committer | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2019-08-10 21:41:05 +0200 |
commit | ade5133f6d79a722bff5d7f66e00c2f4ed19e5dc (patch) | |
tree | fef7de0a74f15a6c673b2bfc50474be88e724d01 /src | |
parent | 184835987950b119bb2057aa8b1f4133a4a480c1 (diff) |
make SO_NOSIGPIPE more prominent
Diffstat (limited to 'src')
-rw-r--r-- | src/util/network.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/util/network.c b/src/util/network.c index 90f8c8640..2c16fe8c9 100644 --- a/src/util/network.c +++ b/src/util/network.c @@ -343,7 +343,7 @@ socket_set_inheritable (const struct GNUNET_NETWORK_Handle *h) * * @param h the socket to make non-delaying */ -static void +static int socket_set_nosigpipe (const struct GNUNET_NETWORK_Handle *h) { int abs_value = 1; @@ -352,7 +352,8 @@ socket_set_nosigpipe (const struct GNUNET_NETWORK_Handle *h) setsockopt (h->fd, SOL_SOCKET, SO_NOSIGPIPE, (const void *) &abs_value, sizeof (abs_value))) - LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "setsockopt"); + return GNUNET_SYSERR; + return GNUNET_OK; } #endif @@ -444,7 +445,14 @@ initialize_network_handle (struct GNUNET_NETWORK_Handle *h, return GNUNET_SYSERR; } #ifdef DARWIN - socket_set_nosigpipe (h); + if (GNUNET_SYSERR == socket_set_nosigpipe (h)) + { + eno = errno; + GNUNET_break (0); + GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_close (h)); + errno = eno; + return GNUNET_SYSERR; + } #endif if ( (type == SOCK_STREAM) #ifdef AF_UNIX |