commit - fc9cc497e075cf321fe0dcf4c6783e2eeb8b9d43
commit + 4f4937f06a536661ffafa589d1cfb5d91ca27bf3
blob - feb0ca9ca1c326894639375b7bc49164ef58bfd0
blob + 71e182417160aea219c1f38a434d45eee4b4aac2
--- config.c
+++ config.c
}
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
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
/* 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);