From: Egor Date: Tue, 18 Mar 2025 23:56:48 +0000 (+0200) Subject: wrap setsockopt X-Git-Url: https://git.patchysicp.xyz/?a=commitdiff_plain;h=216c73c2185d8f20e5dd32543adadfd0a42fc65a;p=patchyircd.git wrap setsockopt --- diff --git a/src/main.cpp b/src/main.cpp index 8ce6856..45c02ca 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -19,6 +19,10 @@ struct listener { struct tls *ctx; }; +static int setsockint(int sockfd, int level, int optname, int optval) +{ + return setsockopt(sockfd, level, optname, (void *)&optval, sizeof(optval)); +} static SOCKET create_listen_sock(const char *ip, const char *port) { struct addrinfo hints, *res; @@ -39,13 +43,12 @@ static SOCKET create_listen_sock(const char *ip, const char *port) exit(EXIT_FAILURE); } // Set socket options - int opt = 1; - if(setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void*)&opt, sizeof(opt)) == -1) { + if (setsockint(sock, SOL_SOCKET, SO_REUSEADDR, 1) == -1) { net_perror("ERROR SOCKET"); freeaddrinfo(res); exit(EXIT_FAILURE); } - if(res->ai_family == AF_INET6 && setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, (void*)&opt, sizeof(opt)) == -1) { + if (res->ai_family == AF_INET6 && setsockint(sock, IPPROTO_IPV6, IPV6_V6ONLY, 1) == -1) { net_perror("ERROR SOCKET IPV6"); freeaddrinfo(res); exit(EXIT_FAILURE); @@ -81,19 +84,15 @@ static void accept_from_sock(struct listener *listener) { // enable keepalive - int opt = 1; - setsockopt(newSocket, SOL_SOCKET, SO_KEEPALIVE, (void*)&opt, sizeof(opt)); + setsockint(newSocket, SOL_SOCKET, SO_KEEPALIVE, 1); #ifdef TCP_KEEPIDLE - opt = 30; - setsockopt(newSocket, IPPROTO_TCP, TCP_KEEPIDLE, (void*)&opt, sizeof(opt)); + setsockint(newSocket, IPPROTO_TCP, TCP_KEEPIDLE, 30); #endif #ifdef TCP_KEEPINTVL - opt = 1; - setsockopt(newSocket, IPPROTO_TCP, TCP_KEEPINTVL, (void*)&opt, sizeof(opt)); + setsockint(newSocket, IPPROTO_TCP, TCP_KEEPINTVL, 1); #endif #ifdef TCP_KEEPCNT - opt = 10; - setsockopt(newSocket, IPPROTO_TCP, TCP_KEEPCNT, (void*)&opt, sizeof(opt)); + setsockint(newSocket, IPPROTO_TCP, TCP_KEEPCNT, 10); #endif }