mirror of
https://github.com/shadowsocks/shadowsocks-libev.git
synced 2026-10-23 16:13:46 +00:00
Refine IPV6_RECVORIGDSTADDR
This commit is contained in:
+8
-5
@@ -460,11 +460,14 @@ create_server_socket(const char *host, const char *port)
|
||||
ERROR("[udp] setsockopt IP_TRANSPARENT");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (setsockopt(server_sock, SOL_IP, IP_RECVORIGDSTADDR, &opt, sizeof(opt))) {
|
||||
FATAL("[udp] setsockopt IP_RECVORIGDSTADDR");
|
||||
}
|
||||
if (setsockopt(server_sock, SOL_IPV6, IPV6_RECVORIGDSTADDR, &opt, sizeof(opt))) {
|
||||
FATAL("[udp] setsockopt IPV6_RECVORIGDSTADDR");
|
||||
if (rp->ai_family == AF_INET) {
|
||||
if (setsockopt(server_sock, SOL_IP, IP_RECVORIGDSTADDR, &opt, sizeof(opt))) {
|
||||
FATAL("[udp] setsockopt IP_RECVORIGDSTADDR");
|
||||
}
|
||||
} else if (rp->ai_family == AF_INET6) {
|
||||
if (setsockopt(server_sock, SOL_IPV6, IPV6_RECVORIGDSTADDR, &opt, sizeof(opt))) {
|
||||
FATAL("[udp] setsockopt IPV6_RECVORIGDSTADDR");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user