]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
conn: unify code in StdNetBind.Send
authorJosh Bleecher Snyder <josharian@gmail.com>
Mon, 29 Mar 2021 20:11:11 +0000 (13:11 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Tue, 30 Mar 2021 19:09:32 +0000 (12:09 -0700)
The sending code is identical for ipv4 and ipv6;
select the conn, then use it.

Signed-off-by: Josh Bleecher Snyder <josharian@gmail.com>
conn/bind_std.go

index 28d14643dee2cb47d8b451a1673194b064770dd8..73946b439fb144129f39f2a9d81458c0c3272635 100644 (file)
@@ -161,22 +161,21 @@ func (bind *StdNetBind) Send(buff []byte, endpoint Endpoint) error {
        if !ok {
                return ErrWrongEndpointType
        }
+       var conn *net.UDPConn
+       var blackhole bool
        if nend.IP.To4() != nil {
-               if bind.ipv4 == nil {
-                       return syscall.EAFNOSUPPORT
-               }
-               if bind.blackhole4 {
-                       return nil
-               }
-               _, err = bind.ipv4.WriteToUDP(buff, (*net.UDPAddr)(nend))
+               blackhole = bind.blackhole4
+               conn = bind.ipv4
        } else {
-               if bind.ipv6 == nil {
-                       return syscall.EAFNOSUPPORT
-               }
-               if bind.blackhole6 {
-                       return nil
-               }
-               _, err = bind.ipv6.WriteToUDP(buff, (*net.UDPAddr)(nend))
+               blackhole = bind.blackhole6
+               conn = bind.ipv6
        }
+       if blackhole {
+               return nil
+       }
+       if conn == nil {
+               return syscall.EAFNOSUPPORT
+       }
+       _, err = conn.WriteToUDP(buff, (*net.UDPAddr)(nend))
        return err
 }