mirror of
https://github.com/3proxy/3proxy.git
synced 2025-02-23 02:25:40 +08:00
attempt to support IPv6 in netfilter transparent redirection
This commit is contained in:
parent
bf4ef2284b
commit
5471e0faf4
@ -42,7 +42,12 @@ static FILTER_ACTION transparent_filter_client(void *fo, struct clientparam * pa
|
||||
|
||||
#ifdef WITH_NETFILTER
|
||||
#ifdef SO_ORIGINAL_DST
|
||||
if(getsockopt(param->clisock, SOL_IP, SO_ORIGINAL_DST,(struct sockaddr *) ¶m->req, &len) || (!memcmp(((struct sockaddr_in *)¶m->req)->sin_family == AF_INET6? (char *)&((struct sockaddr_in6 *)¶m->req)->sin6_addr : (char *)&((struct sockaddr_in *)¶m->req)->sin_addr.s_addr, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", (((struct sockaddr_in *)¶m->req)->sin_family == AF_INET6? 16:4)))){
|
||||
|
||||
if(getsockopt(param->clisock,
|
||||
#ifdef SOL_IPV6
|
||||
*SAFAMILY(¶m->sincr) == AF_INET6?SOL_IPV6:
|
||||
#endif
|
||||
SOL_IP, SO_ORIGINAL_DST,(struct sockaddr *) ¶m->req, &len) || (!memcmp(((struct sockaddr_in *)¶m->req)->sin_family == AF_INET6? (char *)&((struct sockaddr_in6 *)¶m->req)->sin6_addr : (char *)&((struct sockaddr_in *)¶m->req)->sin_addr.s_addr, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", (((struct sockaddr_in *)¶m->req)->sin_family == AF_INET6? 16:4)))){
|
||||
return PASS;
|
||||
}
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user