From 4f7066dada94a402d867ceca9a668a6e64d12f3c Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Mon, 18 May 2020 14:44:19 -0400 Subject: Don't bother setting SO_NOSIGPIPE We need to ignore SIGPIPE anyway for other platforms. --- compat.h | 5 ----- dispatch.c | 9 +-------- local.c | 7 ++----- server.c | 4 ---- 4 files changed, 3 insertions(+), 22 deletions(-) diff --git a/compat.h b/compat.h index 01ef10c..f8057c4 100644 --- a/compat.h +++ b/compat.h @@ -27,11 +27,6 @@ uint32_t arc4random(void); void arc4random_buf(void *buf, size_t nbytes); uint32_t arc4random_uniform(uint32_t upper_bound); -// The default value of SO_RCVLOWAT is 1 anyway... -#ifndef SO_NOSIGPIPE -#define SO_NOSIGPIPE SO_RCVLOWAT -#endif - #ifndef SIGINFO #define SIGINFO SIGUSR2 #endif diff --git a/dispatch.c b/dispatch.c index 28a4d00..0de7434 100644 --- a/dispatch.c +++ b/dispatch.c @@ -214,7 +214,7 @@ int main(int argc, char *argv[]) { cap_rights_t dirRights, sockRights, unixRights, bindRights; cap_rights_init(&dirRights, CAP_CONNECTAT); - cap_rights_init(&sockRights, CAP_EVENT, CAP_RECV, CAP_SEND, CAP_SETSOCKOPT); + cap_rights_init(&sockRights, CAP_EVENT, CAP_RECV, CAP_SEND); cap_rights_init(&unixRights, CAP_CONNECT, CAP_SEND); cap_rights_init(&bindRights, CAP_LISTEN, CAP_ACCEPT); cap_rights_merge(&bindRights, &sockRights); @@ -255,13 +255,6 @@ int main(int argc, char *argv[]) { warn("accept"); continue; } - - int yes = 1; - error = setsockopt( - sock, SOL_SOCKET, SO_NOSIGPIPE, &yes, sizeof(yes) - ); - if (error) err(EX_OSERR, "setsockopt"); - eventAdd(sock); continue; } diff --git a/local.c b/local.c index 50e49d5..c4aea6f 100644 --- a/local.c +++ b/local.c @@ -215,11 +215,8 @@ struct tls *localAccept(int *fd, int bind) { *fd = sent; } - int yes = 1; - int error = setsockopt(*fd, SOL_SOCKET, SO_NOSIGPIPE, &yes, sizeof(yes)); - if (error) err(EX_OSERR, "setsockopt"); - - error = setsockopt(*fd, SOL_SOCKET, SO_KEEPALIVE, &yes, sizeof(yes)); + int on = 1; + int error = setsockopt(*fd, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on)); if (error) err(EX_OSERR, "setsockopt"); int idle = 15 * 60; diff --git a/server.c b/server.c index 1edeab5..8ea6d19 100644 --- a/server.c +++ b/server.c @@ -114,10 +114,6 @@ int serverConnect(const char *bindHost, const char *host, const char *port) { if (sock < 0) err(EX_UNAVAILABLE, "%s:%s", host, port); freeaddrinfo(head); - int yes = 1; - error = setsockopt(sock, SOL_SOCKET, SO_NOSIGPIPE, &yes, sizeof(yes)); - if (error) err(EX_OSERR, "setsockopt"); - error = tls_connect_socket(client, sock, host); if (error) errx(EX_PROTOCOL, "tls_connect: %s", tls_error(client)); -- cgit 1.4.1