diff options
Diffstat (limited to 'wireguard-go-bridge/src/tun/api-ios.go')
-rw-r--r-- | wireguard-go-bridge/src/tun/api-ios.go | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/wireguard-go-bridge/src/tun/api-ios.go b/wireguard-go-bridge/src/tun/api-ios.go index 0d542cf..8d3413e 100644 --- a/wireguard-go-bridge/src/tun/api-ios.go +++ b/wireguard-go-bridge/src/tun/api-ios.go @@ -6,28 +6,24 @@ package tun import ( - "git.zx2c4.com/wireguard-go/rwcancel" "golang.org/x/sys/unix" "net" "os" ) func CreateTUNFromFD(tunFd int) (TUNDevice, string, error) { + err := unix.SetNonblock(tunFd, true) + if err != nil { + return nil, "", err + } file := os.NewFile(uintptr(tunFd), "/dev/tun") tun := &nativeTun{ tunFile: file, - fd: file.Fd(), events: make(chan TUNEvent, 5), errors: make(chan error, 5), } - var err error - tun.rwcancel, err = rwcancel.NewRWCancel(tunFd) - if err != nil { - return nil, "", err - } name, err := tun.Name() if err != nil { - tun.rwcancel.Cancel() return nil, "", err } tunIfindex, err := func() (int, error) { @@ -38,12 +34,10 @@ func CreateTUNFromFD(tunFd int) (TUNDevice, string, error) { return iface.Index, nil }() if err != nil { - tun.tunFile.Close() return nil, "", err } tun.routeSocket, err = unix.Socket(unix.AF_ROUTE, unix.SOCK_RAW, unix.AF_UNSPEC) if err != nil { - tun.tunFile.Close() return nil, "", err } go tun.routineRouteListener(tunIfindex) |