diff options
| author | Emīls <emils@mullvad.net> | 2025-11-07 09:51:50 +0100 |
|---|---|---|
| committer | Emīls <emils@mullvad.net> | 2025-11-07 09:51:50 +0100 |
| commit | 85e71aa3ec39e20036b999117a2baedbc7f3acae (patch) | |
| tree | c04bb973f2068c3ad5c722c1993b6653a9361889 | |
| parent | cde5957ba25f2a7db35ab4c9c093ee11a30d6671 (diff) | |
| download | mullvadvpn-decrease-leaks-during-reconnect.tar.xz mullvadvpn-decrease-leaks-during-reconnect.zip | |
Decrease leaksdecrease-leaks-during-reconnect
| -rw-r--r-- | ios/PacketTunnel/PacketTunnelProvider/PacketTunnelProvider.swift | 13 |
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 } |
