diff options
| author | Bug Magnet <marco.nikic@mullvad.net> | 2025-05-26 15:28:48 +0200 |
|---|---|---|
| committer | Bug Magnet <marco.nikic@mullvad.net> | 2025-05-26 15:28:48 +0200 |
| commit | 4070a95bf49f532d41b6beb8c9eaa6a7caf1a57d (patch) | |
| tree | 98cd4bba777d3866a5ac37f8b0bd4eae70f998e5 /ios | |
| parent | 5ab5724318ef85077433a5db532f27d1ddba71bb (diff) | |
| parent | 97f08169ac515989f18cf29e234460ac9d33ba4f (diff) | |
| download | mullvadvpn-4070a95bf49f532d41b6beb8c9eaa6a7caf1a57d.tar.xz mullvadvpn-4070a95bf49f532d41b6beb8c9eaa6a7caf1a57d.zip | |
Merge branch 'ios-1148-ip-override-feature-indicator'
Diffstat (limited to 'ios')
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 |
