summaryrefslogtreecommitdiffhomepage
path: root/tunnel/tools/libwg-go/api-android.go
diff options
context:
space:
mode:
Diffstat (limited to 'tunnel/tools/libwg-go/api-android.go')
-rw-r--r--tunnel/tools/libwg-go/api-android.go22
1 files changed, 16 insertions, 6 deletions
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
}