From 2c50e569048c7bf942f551a3828f69051313aa61 Mon Sep 17 00:00:00 2001 From: lucifer9 Date: Sat, 29 Feb 2020 12:08:02 +0800 Subject: [PATCH] fix udp not work in ipv4 using common config --- transport/internet/sockopt_linux.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/transport/internet/sockopt_linux.go b/transport/internet/sockopt_linux.go index 4e0c3b93..068879e8 100644 --- a/transport/internet/sockopt_linux.go +++ b/transport/internet/sockopt_linux.go @@ -100,10 +100,10 @@ func applyInboundSocketOptions(network string, fd uintptr, config *SocketConfig) } if config.ReceiveOriginalDestAddress && isUDPSocket(network) { - if err := syscall.SetsockoptInt(int(fd), syscall.SOL_IPV6, unix.IPV6_RECVORIGDSTADDR, 1); err != nil { - if err := syscall.SetsockoptInt(int(fd), syscall.SOL_IP, syscall.IP_RECVORIGDSTADDR, 1); err != nil { - return err - } + err1 := syscall.SetsockoptInt(int(fd), syscall.SOL_IPV6, unix.IPV6_RECVORIGDSTADDR, 1) + err2 := syscall.SetsockoptInt(int(fd), syscall.SOL_IP, syscall.IP_RECVORIGDSTADDR, 1) + if err1 != nil && err2 != nil { + return err1 } }