diff options
author | June McEnroe <june@causal.agency> | 2020-05-18 14:44:19 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-05-18 14:44:19 -0400 |
commit | 4f7066dada94a402d867ceca9a668a6e64d12f3c (patch) | |
tree | 9f9aa93653fad589a85d843e656ab428435cc08c | |
parent | Enable TCP keepalive with half-hour idle (diff) | |
download | pounce-4f7066dada94a402d867ceca9a668a6e64d12f3c.tar.gz pounce-4f7066dada94a402d867ceca9a668a6e64d12f3c.zip |
Don't bother setting SO_NOSIGPIPE
We need to ignore SIGPIPE anyway for other platforms.
-rw-r--r-- | compat.h | 5 | ||||
-rw-r--r-- | dispatch.c | 9 | ||||
-rw-r--r-- | local.c | 7 | ||||
-rw-r--r-- | 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)); |