]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
TunnelErrors: Add alert text for PacketTunnelProviderError
authorRoopesh Chander <roop@roopc.net>
Sat, 22 Dec 2018 10:35:35 +0000 (16:05 +0530)
committerRoopesh Chander <roop@roopc.net>
Sat, 22 Dec 2018 10:35:43 +0000 (16:05 +0530)
Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/Tunnel/TunnelErrors.swift
WireGuard/WireGuard/Tunnel/TunnelsManager.swift

index 77b04109a11298e53bfb89b6048a83b8c03588b5..8e7f52456a67479b950b6fbe4c85312b897cf547 100644 (file)
@@ -64,6 +64,23 @@ enum TunnelsManagerActivationError: WireGuardAppError {
     }
 }
 
+extension PacketTunnelProviderError: WireGuardAppError {
+    var alertText: AlertText {
+        switch self {
+        case .savedProtocolConfigurationIsInvalid:
+            return (tr("alertTunnelActivationFailureTitle"), tr("alertTunnelActivationSavedConfigFailureMessage"))
+        case .dnsResolutionFailure:
+            return (tr("alertTunnelDNSFailureTitle"), tr("alertTunnelDNSFailureMessage"))
+        case .couldNotStartBackend:
+            return (tr("alertTunnelActivationFailureTitle"), tr("alertTunnelActivationBackendFailureMessage"))
+        case .couldNotDetermineFileDescriptor:
+            return (tr("alertTunnelActivationFailureTitle"), tr("alertTunnelActivationFileDescriptorFailureMessage"))
+        case .couldNotSetNetworkSettings:
+            return (tr("alertTunnelActivationFailureTitle"), tr("alertTunnelActivationSetNetworkSettingsMessage"))
+        }
+    }
+}
+
 extension Error {
     var localizedUIString: String {
         if let systemError = self as? NEVPNError {
index da1b217cfa9bd5ca69a1a18e0eb1050b9aa2e8c2..6b24a58e937d99cab8c24bf01855c1edf1d3e3f8 100644 (file)
@@ -323,20 +323,11 @@ private func lastErrorTextFromNetworkExtension(for tunnel: TunnelContainer) -> (
     guard let lastErrorStrings = String(data: lastErrorData, encoding: .utf8)?.splitToArray(separator: "\n") else { return nil }
     guard lastErrorStrings.count == 2 && tunnel.activationAttemptId == lastErrorStrings[0] else { return nil }
 
-    switch PacketTunnelProviderError(rawValue: lastErrorStrings[1]) {
-    case .some(.savedProtocolConfigurationIsInvalid):
-        return (tr("alertTunnelActivationFailureTitle"), tr("alertTunnelActivationSavedConfigFailureMessage"))
-    case .some(.dnsResolutionFailure):
-        return (tr("alertTunnelDNSFailureTitle"), tr("alertTunnelDNSFailureMessage"))
-    case .some(.couldNotStartBackend):
-        return (tr("alertTunnelActivationFailureTitle"), tr("alertTunnelActivationBackendFailureMessage"))
-    case .some(.couldNotDetermineFileDescriptor):
-        return (tr("alertTunnelActivationFailureTitle"), tr("alertTunnelActivationFileDescriptorFailureMessage"))
-    case .some(.couldNotSetNetworkSettings):
-        return (tr("alertTunnelActivationFailureTitle"), tr("alertTunnelActivationSetNetworkSettingsMessage"))
-    default:
-        return (tr("alertTunnelActivationFailureTitle"), tr("alertTunnelActivationFailureMessage"))
+    if let extensionError = PacketTunnelProviderError(rawValue: lastErrorStrings[1]) {
+        return extensionError.alertText
     }
+
+    return (tr("alertTunnelActivationFailureTitle"), tr("alertTunnelActivationFailureMessage"))
 }
 
 class TunnelContainer: NSObject {