summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJon Petersson <jon.petersson@kvadrat.se>2023-10-16 14:46:14 +0200
committerBug Magnet <marco.nikic@mullvad.net>2023-10-20 08:53:51 +0200
commiteb32396b0adcb0b60c8181c807f2a18ba9de66e4 (patch)
treeb1ea31a10fabdbaf982eed210a6ba8eeaef5fe54
parent52fd2c207b2812eb2b1c010039c145480926ba3d (diff)
downloadmullvadvpn-eb32396b0adcb0b60c8181c807f2a18ba9de66e4.tar.xz
mullvadvpn-eb32396b0adcb0b60c8181c807f2a18ba9de66e4.zip
Add blocked state due to account expiration
-rw-r--r--ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift2
-rw-r--r--ios/PacketTunnel/PacketTunnelProvider/DeviceCheck+BlockedStateReason.swift4
-rw-r--r--ios/PacketTunnelCore/Actor/State+Extensions.swift4
-rw-r--r--ios/PacketTunnelCore/Actor/State.swift3
4 files changed, 11 insertions, 2 deletions
diff --git a/ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift b/ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift
index d36c41303c..8e4fcf2897 100644
--- a/ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift
+++ b/ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift
@@ -231,6 +231,8 @@ final class TunnelStatusNotificationProvider: NotificationProvider, InAppNotific
errorString = "No servers match your settings, try changing server or other settings."
case .invalidAccount:
errorString = "You are logged in with an invalid account number. Please log out and try another one."
+ case .accountExpired:
+ errorString = "Account is out of time."
case .deviceRevoked, .deviceLoggedOut:
errorString = "Unable to authenticate account. Please log out and log back in."
default:
diff --git a/ios/PacketTunnel/PacketTunnelProvider/DeviceCheck+BlockedStateReason.swift b/ios/PacketTunnel/PacketTunnelProvider/DeviceCheck+BlockedStateReason.swift
index f6c2d28c1d..8ff50cba83 100644
--- a/ios/PacketTunnel/PacketTunnelProvider/DeviceCheck+BlockedStateReason.swift
+++ b/ios/PacketTunnel/PacketTunnelProvider/DeviceCheck+BlockedStateReason.swift
@@ -20,6 +20,10 @@ extension DeviceCheck {
return .deviceRevoked
}
+ if case .expired = accountVerdict {
+ return .accountExpired
+ }
+
return nil
}
}
diff --git a/ios/PacketTunnelCore/Actor/State+Extensions.swift b/ios/PacketTunnelCore/Actor/State+Extensions.swift
index 66583b13b4..402938da8f 100644
--- a/ios/PacketTunnelCore/Actor/State+Extensions.swift
+++ b/ios/PacketTunnelCore/Actor/State+Extensions.swift
@@ -105,8 +105,8 @@ extension BlockedStateReason {
case .deviceLocked:
return true
- case .noRelaysSatisfyingConstraints, .readSettings, .invalidAccount, .deviceRevoked, .tunnelAdapter, .unknown,
- .deviceLoggedOut, .outdatedSchema, .invalidRelayPublicKey:
+ case .noRelaysSatisfyingConstraints, .readSettings, .invalidAccount, .accountExpired, .deviceRevoked,
+ .tunnelAdapter, .unknown, .deviceLoggedOut, .outdatedSchema, .invalidRelayPublicKey:
return false
}
}
diff --git a/ios/PacketTunnelCore/Actor/State.swift b/ios/PacketTunnelCore/Actor/State.swift
index 943cb0317b..0ae7b22de1 100644
--- a/ios/PacketTunnelCore/Actor/State.swift
+++ b/ios/PacketTunnelCore/Actor/State.swift
@@ -177,6 +177,9 @@ public enum BlockedStateReason: String, Codable, Equatable {
/// Invalid account.
case invalidAccount
+ /// Account is expired.
+ case accountExpired
+
/// Device revoked.
case deviceRevoked