]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
device: allow compiling with Go 1.15
authorJason A. Donenfeld <Jason@zx2c4.com>
Wed, 20 Jan 2021 19:04:31 +0000 (20:04 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Wed, 20 Jan 2021 19:12:32 +0000 (20:12 +0100)
Until we depend on Go 1.16 (which isn't released yet), alias our own
variable to the private member of the net package. This will allow an
easy find replace to make this go away when we eventually switch to
1.16.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
conn/conn_linux.go
conn/net_err_closed.go [new file with mode: 0644]
device/receive.go
go.mod

index 642ad7df9baa7f8b43a4c4441d774385e41fc627..c32ee0dcbe1519cd8ee19dd0619d96453022f32f 100644 (file)
@@ -204,7 +204,7 @@ func (bind *nativeBind) ReceiveIPv6(buff []byte) (int, Endpoint, error) {
 
        var end NativeEndpoint
        if bind.sock6 == -1 {
-               return 0, nil, net.ErrClosed
+               return 0, nil, NetErrClosed
        }
        n, err := receive6(
                bind.sock6,
@@ -220,7 +220,7 @@ func (bind *nativeBind) ReceiveIPv4(buff []byte) (int, Endpoint, error) {
 
        var end NativeEndpoint
        if bind.sock4 == -1 {
-               return 0, nil, net.ErrClosed
+               return 0, nil, NetErrClosed
        }
        n, err := receive4(
                bind.sock4,
@@ -237,12 +237,12 @@ func (bind *nativeBind) Send(buff []byte, end Endpoint) error {
        nend := end.(*NativeEndpoint)
        if !nend.isV6 {
                if bind.sock4 == -1 {
-                       return net.ErrClosed
+                       return NetErrClosed
                }
                return send4(bind.sock4, nend, buff)
        } else {
                if bind.sock6 == -1 {
-                       return net.ErrClosed
+                       return NetErrClosed
                }
                return send6(bind.sock6, nend, buff)
        }
diff --git a/conn/net_err_closed.go b/conn/net_err_closed.go
new file mode 100644 (file)
index 0000000..e4dcfae
--- /dev/null
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: MIT
+ *
+ * Copyright (C) 2021 WireGuard LLC. All Rights Reserved.
+ */
+
+package conn
+
+import _ "unsafe"
+
+//TODO: replace this with net.ErrClosed for Go 1.16
+
+//go:linkname NetErrClosed internal/poll.ErrNetClosing
+var NetErrClosed error
index 701e30899148699bc68a5c3293b2b9060548bf86..605303e6352d40b5af57529bfbe1a74f37eaf44c 100644 (file)
@@ -112,7 +112,7 @@ func (device *Device) RoutineReceiveIncoming(IP int, bind conn.Bind) {
 
                if err != nil {
                        device.PutMessageBuffer(buffer)
-                       if errors.Is(err, net.ErrClosed) {
+                       if errors.Is(err, conn.NetErrClosed) {
                                return
                        }
                        device.log.Error.Printf("Failed to receive packet: %v", err)
diff --git a/go.mod b/go.mod
index 7b2c60fc3819c7000f86573043073671408a4c17..10c0163328d0190a3248eb4d8e48ecf88b17f3c2 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
 module golang.zx2c4.com/wireguard
 
-go 1.16
+go 1.15
 
 require (
        golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad