From d2f3a29f45db59ab48fb398b835b377ca4e6833d Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 31 Oct 2018 03:03:00 +0100 Subject: 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 --- WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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() } -- cgit v1.2.3-59-g8ed1b