summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorEmīls <emils@mullvad.net>2025-11-07 09:51:50 +0100
committerEmīls <emils@mullvad.net>2025-11-07 09:51:50 +0100
commit85e71aa3ec39e20036b999117a2baedbc7f3acae (patch)
treec04bb973f2068c3ad5c722c1993b6653a9361889
parentcde5957ba25f2a7db35ab4c9c093ee11a30d6671 (diff)
downloadmullvadvpn-decrease-leaks-during-reconnect.tar.xz
mullvadvpn-decrease-leaks-during-reconnect.zip
-rw-r--r--ios/PacketTunnel/PacketTunnelProvider/PacketTunnelProvider.swift13
1 files changed, 5 insertions, 8 deletions
diff --git a/ios/PacketTunnel/PacketTunnelProvider/PacketTunnelProvider.swift b/ios/PacketTunnel/PacketTunnelProvider/PacketTunnelProvider.swift
index 7a26115807..8670fffe74 100644
--- a/ios/PacketTunnel/PacketTunnelProvider/PacketTunnelProvider.swift
+++ b/ios/PacketTunnel/PacketTunnelProvider/PacketTunnelProvider.swift
@@ -360,15 +360,12 @@ extension PacketTunnelProvider {
var lastConnectionAttempt: UInt = 0
for await newState in stateStream {
- // Tell packet tunnel when reconnection begins.
- // Packet tunnel moves to `NEVPNStatus.reasserting` state once `reasserting` flag is set to `true`.
- if case .reconnecting = newState, !self.reasserting {
- self.reasserting = true
- }
-
- // Tell packet tunnel when reconnection ends.
- // Packet tunnel moves to `NEVPNStatus.connected` state once `reasserting` flag is set to `false`.
+ // Tell the packet tunnel when the reconnection is finished by toggling the `reasserting` flag. When the
+ // flag is set to `false`, traffic is not routed through the tunnel. When it is transitions from `false`
+ // to `true`, sockets are reset, thus it is vital to toggole it. Packet tunnel moves to `NEVPNStatus.connected` state once `reasserting`
+ // flag is set to `false`.
if case .connected = newState, self.reasserting {
+ self.reasserting = true
self.reasserting = false
}