From 3d088411e2641c2fbc8cc4a5d409eccdd3ffbbb2 Mon Sep 17 00:00:00 2001 From: David Crawshaw Date: Sun, 21 Jun 2020 20:58:20 -0400 Subject: libwg-go: use conn.Bind for socketfd peek Signed-off-by: David Crawshaw Signed-off-by: Jason A. Donenfeld --- tunnel/tools/libwg-go/api-android.go | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'tunnel/tools/libwg-go/api-android.go') diff --git a/tunnel/tools/libwg-go/api-android.go b/tunnel/tools/libwg-go/api-android.go index 7a393cae..70c1c0c9 100644 --- a/tunnel/tools/libwg-go/api-android.go +++ b/tunnel/tools/libwg-go/api-android.go @@ -11,10 +11,6 @@ import "C" import ( "bufio" - "golang.org/x/sys/unix" - "golang.zx2c4.com/wireguard/device" - "golang.zx2c4.com/wireguard/ipc" - "golang.zx2c4.com/wireguard/tun" "bytes" "log" "math" @@ -24,6 +20,12 @@ import ( "runtime" "strings" "unsafe" + + "golang.org/x/sys/unix" + "golang.zx2c4.com/wireguard/conn" + "golang.zx2c4.com/wireguard/device" + "golang.zx2c4.com/wireguard/ipc" + "golang.zx2c4.com/wireguard/tun" ) type AndroidLogger struct { @@ -149,7 +151,11 @@ func wgGetSocketV4(tunnelHandle int32) int32 { if !ok { return -1 } - fd, err := handle.device.PeekLookAtSocketFd4() + bind, _ := handle.device.Bind().(conn.PeekLookAtSocketFd) + if bind == nil { + return -1 + } + fd, err := bind.PeekLookAtSocketFd4() if err != nil { return -1 } @@ -162,7 +168,11 @@ func wgGetSocketV6(tunnelHandle int32) int32 { if !ok { return -1 } - fd, err := handle.device.PeekLookAtSocketFd6() + bind, _ := handle.device.Bind().(conn.PeekLookAtSocketFd) + if bind == nil { + return -1 + } + fd, err := bind.PeekLookAtSocketFd4() if err != nil { return -1 } -- cgit v1.2.3