Browse Source

fix udp not work in ipv4 using common config

lucifer9 5 years ago
parent
commit
9608f77ba8
1 changed files with 4 additions and 4 deletions
  1. 4 4
      transport/internet/sockopt_linux.go

+ 4 - 4
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
 		}
 	}