mirror of
https://github.com/yrutschle/sslh.git
synced 2025-04-23 04:00:29 +03:00
moved ipv6 transparent listen ipv6 only to after freebind.
Removed debugging
This commit is contained in:
parent
80d57dee55
commit
b711d812a1
26
common.c
26
common.c
@ -121,15 +121,6 @@ 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)");
|
||||
@ -145,11 +136,22 @@ int start_listen_sockets(int *sockfd[], struct addrinfo *addr_list)
|
||||
check_res_dumpdie(res, addr, "setsockopt(IP_FREEBIND)");
|
||||
}
|
||||
|
||||
/* 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)
|
||||
{
|
||||
//fprintf(stderr, "Transparent set and IPv6\n");
|
||||
res = setsockopt((*sockfd)[i], IPPROTO_IPV6, IPV6_V6ONLY, (char*)&one, sizeof(one));
|
||||
check_res_dumpdie(res, addr, "setsockopt(IPV6_V6ONLY)");
|
||||
}
|
||||
|
||||
res = bind((*sockfd)[i], addr->ai_addr, addr->ai_addrlen);
|
||||
check_res_dumpdie(res, addr, "bind");
|
||||
|
||||
res = listen ((*sockfd)[i], 50);
|
||||
check_res_dumpdie(res, addr, "listen");
|
||||
//fprintf(stderr, "here\n");
|
||||
|
||||
}
|
||||
|
||||
@ -165,7 +167,7 @@ int bind_peer(int fd, int fd_from)
|
||||
struct sockaddr_storage ss;
|
||||
int res, trans = 1;
|
||||
|
||||
fprintf(stderr, "Starting bind_peer\n");
|
||||
//fprintf(stderr, "Starting bind_peer\n");
|
||||
|
||||
memset(&from, 0, sizeof(from));
|
||||
from.ai_addr = (struct sockaddr*)&ss;
|
||||
@ -209,7 +211,7 @@ int bind_peer(int fd, int fd_from)
|
||||
}
|
||||
|
||||
#ifndef IP_BINDANY /* use IP_TRANSPARENT */
|
||||
fprintf(stderr, "IP_TRANSPARENT\n");
|
||||
//fprintf(stderr, "IP_TRANSPARENT\n");
|
||||
res = setsockopt(fd, IPPROTO_IP, IP_TRANSPARENT, &trans, sizeof(trans));
|
||||
CHECK_RES_DIE(res, "setsockopt");
|
||||
#else
|
||||
@ -223,7 +225,7 @@ int bind_peer(int fd, int fd_from)
|
||||
#endif /* IPV6_BINDANY */
|
||||
}
|
||||
#endif /* IP_TRANSPARENT / IP_BINDANY */
|
||||
fprintf(stderr, "bind\n");
|
||||
// fprintf(stderr, "bind\n");
|
||||
res = bind(fd, from.ai_addr, from.ai_addrlen);
|
||||
CHECK_RES_RETURN(res, "bind");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user