diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2020-09-03 12:05:04 +0200 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2020-09-03 13:32:06 +0200 |
| commit | e698721807cac35c04b2a54179144553df4656b9 (patch) | |
| tree | a1ad4e1e8f664e60bb901c4fd71911c4b2f13841 | |
| parent | ab640dc324e02ac72c91bda6817c3c28a5f244b2 (diff) | |
| download | mullvadvpn-e698721807cac35c04b2a54179144553df4656b9.tar.xz mullvadvpn-e698721807cac35c04b2a54179144553df4656b9.zip | |
Update wireguard-go-bridge
https://git.zx2c4.com/wireguard-apple/commit/?id=737f847c0db36429f7136fb514409c22e13a70ee
| -rw-r--r-- | ios/wireguard-go-bridge/api-ios.go | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/ios/wireguard-go-bridge/api-ios.go b/ios/wireguard-go-bridge/api-ios.go index 93dd323df7..d6eccd8f28 100644 --- a/ios/wireguard-go-bridge/api-ios.go +++ b/ios/wireguard-go-bridge/api-ios.go @@ -90,15 +90,22 @@ func wgTurnOn(settings *C.char, tunFd int32) int32 { Info: log.New(&CLogger{level: 1}, "", 0), Error: log.New(&CLogger{level: 2}, "", 0), } + dupTunFd, err := unix.Dup(int(tunFd)) + if err != nil { + logger.Error.Println(err) + return -1 + } - err := unix.SetNonblock(int(tunFd), true) + err = unix.SetNonblock(dupTunFd, true) if err != nil { logger.Error.Println(err) + unix.Close(dupTunFd) return -1 } - tun, err := tun.CreateTUNFromFile(os.NewFile(uintptr(tunFd), "/dev/tun"), 0) + tun, err := tun.CreateTUNFromFile(os.NewFile(uintptr(dupTunFd), "/dev/tun"), 0) if err != nil { logger.Error.Println(err) + unix.Close(dupTunFd) return -1 } logger.Info.Println("Attaching to interface") @@ -107,6 +114,7 @@ func wgTurnOn(settings *C.char, tunFd int32) int32 { setError := device.IpcSetOperation(bufio.NewReader(strings.NewReader(C.GoString(settings)))) if setError != nil { logger.Error.Println(setError) + unix.Close(dupTunFd) return -1 } @@ -120,6 +128,7 @@ func wgTurnOn(settings *C.char, tunFd int32) int32 { } } if i == math.MaxInt32 { + unix.Close(dupTunFd) return -1 } tunnelHandles[i] = tunnelHandle{device, logger} |
