commit 4f4937f06a536661ffafa589d1cfb5d91ca27bf3 from: Omar Polo date: Thu Jun 08 16:07:01 2023 UTC move make_socket to config.c and make it private commit - fc9cc497e075cf321fe0dcf4c6783e2eeb8b9d43 commit + 4f4937f06a536661ffafa589d1cfb5d91ca27bf3 blob - feb0ca9ca1c326894639375b7bc49164ef58bfd0 blob + 71e182417160aea219c1f38a434d45eee4b4aac2 --- config.c +++ config.c @@ -134,6 +134,61 @@ config_send_file(struct privsep *ps, int fd, int type) } static int +make_socket(int port, int family) +{ + int sock, v; + struct sockaddr_in addr4; + struct sockaddr_in6 addr6; + struct sockaddr *addr; + socklen_t len; + + switch (family) { + case AF_INET: + memset(&addr4, 0, sizeof(addr4)); + addr4.sin_family = family; + addr4.sin_port = htons(port); + addr4.sin_addr.s_addr = INADDR_ANY; + addr = (struct sockaddr*)&addr4; + len = sizeof(addr4); + break; + + case AF_INET6: + memset(&addr6, 0, sizeof(addr6)); + addr6.sin6_family = AF_INET6; + addr6.sin6_port = htons(port); + addr6.sin6_addr = in6addr_any; + addr = (struct sockaddr*)&addr6; + len = sizeof(addr6); + break; + + default: + /* unreachable */ + abort(); + } + + if ((sock = socket(family, SOCK_STREAM, 0)) == -1) + fatal("socket"); + + v = 1; + if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &v, sizeof(v)) == -1) + fatal("setsockopt(SO_REUSEADDR)"); + + v = 1; + if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, &v, sizeof(v)) == -1) + fatal("setsockopt(SO_REUSEPORT)"); + + mark_nonblock(sock); + + if (bind(sock, addr, len) == -1) + fatal("bind"); + + if (listen(sock, 16) == -1) + fatal("listen"); + + return sock; +} + +static int config_send_socks(struct conf *conf) { struct privsep *ps = conf->ps; blob - ec3ddb74f9d60f665d0a268af92dddfc8603d478 blob + 147609e530110039497ee22a8721f3759cf2459c --- gmid.c +++ gmid.c @@ -72,61 +72,6 @@ const char *pidfile; struct conf conf; -int -make_socket(int port, int family) -{ - int sock, v; - struct sockaddr_in addr4; - struct sockaddr_in6 addr6; - struct sockaddr *addr; - socklen_t len; - - switch (family) { - case AF_INET: - memset(&addr4, 0, sizeof(addr4)); - addr4.sin_family = family; - addr4.sin_port = htons(port); - addr4.sin_addr.s_addr = INADDR_ANY; - addr = (struct sockaddr*)&addr4; - len = sizeof(addr4); - break; - - case AF_INET6: - memset(&addr6, 0, sizeof(addr6)); - addr6.sin6_family = AF_INET6; - addr6.sin6_port = htons(port); - addr6.sin6_addr = in6addr_any; - addr = (struct sockaddr*)&addr6; - len = sizeof(addr6); - break; - - default: - /* unreachable */ - abort(); - } - - if ((sock = socket(family, SOCK_STREAM, 0)) == -1) - fatal("socket"); - - v = 1; - if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &v, sizeof(v)) == -1) - fatal("setsockopt(SO_REUSEADDR)"); - - v = 1; - if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, &v, sizeof(v)) == -1) - fatal("setsockopt(SO_REUSEPORT)"); - - mark_nonblock(sock); - - if (bind(sock, addr, len) == -1) - fatal("bind"); - - if (listen(sock, 16) == -1) - fatal("listen"); - - return sock; -} - static void usage(void) { blob - af95f1b2e793727cbde35013f946042c7ff4da92 blob + 013f39168117946419a3fc4e60a3eb30251ea86f --- gmid.h +++ gmid.h @@ -327,7 +327,6 @@ enum imsg_type { /* gmid.c */ char *data_dir(void); void load_local_cert(struct vhost*, const char*, const char*); -int make_socket(int, int); /* config.c */ void config_init(void);