aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-10-31 03:03:00 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2018-10-31 03:03:00 +0100
commitd2f3a29f45db59ab48fb398b835b377ca4e6833d (patch)
tree791dc64096e9ff02a3ef14cc3084c7c0b8c79737
parentwireguard-go-bridge: handle errors in makefile (diff)
downloadwireguard-apple-d2f3a29f45db59ab48fb398b835b377ca4e6833d.tar.xz
wireguard-apple-d2f3a29f45db59ab48fb398b835b377ca4e6833d.zip
NetworkExtension: close context before turning off go
The go turnOff code waits for all readers to have completed. In order to make readers complete, we must send the signal to unblock the request. Thus, we must reorder these. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r--WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift2
1 files changed, 1 insertions, 1 deletions
diff --git a/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift b/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift
index a961f76..5f19fb1 100644
--- a/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift
+++ b/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift
@@ -125,10 +125,10 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
/// Begin the process of stopping the tunnel.
override func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
os_log("Stopping tunnel", log: OSLog.default, type: .info)
+ wgContext?.closeTunnel()
if let handle = wgHandle {
wgTurnOff(handle)
}
- wgContext?.closeTunnel()
completionHandler()
}