X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=src%2Ftlsproxy.c;h=a54a6e9c5161e6a67f3c68950daac3da7894596c;hb=451082eb1b2f8fc5cbacbb65cd4e48348192b477;hp=5fed55427ae95468c88bed20b615472ba2bf8625;hpb=3c4d48bc9f6d8228b4eb61ef7920bdc64fc2eec1;p=tlsproxy%2Ftlsproxy.git diff --git a/src/tlsproxy.c b/src/tlsproxy.c index 5fed554..a54a6e9 100644 --- a/src/tlsproxy.c +++ b/src/tlsproxy.c @@ -89,7 +89,11 @@ static void worker_thread(void); int main(int argc, char **argv) { int port; int client_socket, server_socket; +#ifdef USE_IPV4_ONLY + struct sockaddr_in server_in; +#else struct sockaddr_in6 server_in; +#endif size_t i; pthread_t *threads; @@ -154,7 +158,11 @@ int main(int argc, char **argv) { threads[i] = thread; } +#ifdef USE_IPV4_ONLY + server_socket = socket(PF_INET, SOCK_STREAM, 0); +#else server_socket = socket(PF_INET6, SOCK_STREAM, 0); +#endif if (-1 == server_socket) { perror("socket()"); return EXIT_FAILURE; @@ -171,9 +179,15 @@ int main(int argc, char **argv) { /* Bind to the listen socket. */ memset(&server_in, 0, sizeof(server_in)); +#ifdef USE_IPV4_ONLY + server_in.sin_family = AF_INET; /* IPv4 only */ + server_in.sin_addr.s_addr = INADDR_ANY; /* bind to any address */ + server_in.sin_port = htons((uint16_t)port); /* port to bind to */ +#else server_in.sin6_family = AF_INET6; /* IPv6 (and IPv4) */ server_in.sin6_addr = in6addr_any; /* bind to any address */ server_in.sin6_port = htons((uint16_t)port); /* port to bind to */ +#endif if (-1 == bind(server_socket, (struct sockaddr *)&server_in, sizeof(server_in))) { perror("bind()");