diff options
| author | Andrew Bulhak <andrew.bulhak@mullvad.net> | 2025-05-21 20:55:30 +0200 |
|---|---|---|
| committer | Bug Magnet <marco.nikic@mullvad.net> | 2025-05-26 15:28:02 +0200 |
| commit | 97f08169ac515989f18cf29e234460ac9d33ba4f (patch) | |
| tree | 98cd4bba777d3866a5ac37f8b0bd4eae70f998e5 | |
| parent | 5ab5724318ef85077433a5db532f27d1ddba71bb (diff) | |
| download | mullvadvpn-97f08169ac515989f18cf29e234460ac9d33ba4f.tar.xz mullvadvpn-97f08169ac515989f18cf29e234460ac9d33ba4f.zip | |
Make IP Override feature indicator check current tunnel endpoint
3 files changed, 13 insertions, 2 deletions
diff --git a/ios/MullvadREST/Relay/RelaySelectorProtocol.swift b/ios/MullvadREST/Relay/RelaySelectorProtocol.swift index 8b84c3a6ba..7b2f91c761 100644 --- a/ios/MullvadREST/Relay/RelaySelectorProtocol.swift +++ b/ios/MullvadREST/Relay/RelaySelectorProtocol.swift @@ -53,6 +53,10 @@ public struct SelectedRelays: Equatable, Codable, Sendable { public let exit: SelectedRelay public let retryAttempt: UInt + public var ingress: SelectedRelay { + entry ?? exit + } + public init(entry: SelectedRelay?, exit: SelectedRelay, retryAttempt: UInt) { self.entry = entry self.exit = exit diff --git a/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift b/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift index e986476def..dd26aa654f 100644 --- a/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift +++ b/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift @@ -126,10 +126,17 @@ struct DNSFeature: ChipFeature { } struct IPOverrideFeature: ChipFeature { + let state: TunnelState let overrides: [IPOverride] var isEnabled: Bool { - !overrides.isEmpty + guard + let endpoint = state.relays?.ingress.endpoint + else { return false } + return overrides.contains { override in + (override.ipv4Address.map { $0 == endpoint.ipv4Relay.ip } ?? false) || + (override.ipv6Address.map { $0 == endpoint.ipv6Relay?.ip } ?? false) + } } var name: String { diff --git a/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/FeatureIndicatorsViewModel.swift b/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/FeatureIndicatorsViewModel.swift index 2a4e521919..5458efb7a8 100644 --- a/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/FeatureIndicatorsViewModel.swift +++ b/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/FeatureIndicatorsViewModel.swift @@ -39,7 +39,7 @@ class FeatureIndicatorsViewModel: ChipViewModelProtocol { MultihopFeature(state: tunnelState), ObfuscationFeature(settings: tunnelSettings, state: observedState), DNSFeature(settings: tunnelSettings), - IPOverrideFeature(overrides: ipOverrides), + IPOverrideFeature(state: tunnelState, overrides: ipOverrides), ] return features |
