mirror of
https://github.com/yrutschle/sslh.git
synced 2025-04-22 03:30:40 +03:00
Transparent proxy fix, only listen on ipv6 port if an ipv6 address
This commit is contained in:
parent
b4cb910438
commit
2c07ef20f7
9
common.c
9
common.c
@ -121,6 +121,15 @@ int start_listen_sockets(int *sockfd[], struct addrinfo *addr_list)
|
||||
(*sockfd)[i] = socket(saddr->ss_family, SOCK_STREAM, 0);
|
||||
check_res_dumpdie((*sockfd)[i], addr, "socket");
|
||||
|
||||
/* If transparent proxy enabled and ipv6 address then only listen on IPv6 port.
|
||||
* Transparent proxying fails if you don't.
|
||||
* */
|
||||
if (transparent && saddr->ss_family == AF_INET6)
|
||||
{
|
||||
res = setsockopt((*sockfd)[i], IPPROTO_IPV6, IPV6_V6ONLY, (char*)&one, sizeof(one));
|
||||
check_res_dumpdie(res, addr, "setsockopt(IPV6_V6ONLY)");
|
||||
}
|
||||
|
||||
one = 1;
|
||||
res = setsockopt((*sockfd)[i], SOL_SOCKET, SO_REUSEADDR, (char*)&one, sizeof(one));
|
||||
check_res_dumpdie(res, addr, "setsockopt(SO_REUSEADDR)");
|
||||
|
Loading…
x
Reference in New Issue
Block a user