summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/java/com/android/server/net/LockdownVpnTracker.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/services/java/com/android/server/net/LockdownVpnTracker.java b/services/java/com/android/server/net/LockdownVpnTracker.java
index e25192525e33..13e400f86356 100644
--- a/services/java/com/android/server/net/LockdownVpnTracker.java
+++ b/services/java/com/android/server/net/LockdownVpnTracker.java
@@ -148,8 +148,13 @@ public class LockdownVpnTracker {
showNotification(R.string.vpn_lockdown_connecting, R.drawable.vpn_disconnected);
mAcceptedEgressIface = egressProp.getInterfaceName();
- mVpn.startLegacyVpn(mProfile, KeyStore.getInstance(), egressProp);
-
+ try {
+ mVpn.startLegacyVpn(mProfile, KeyStore.getInstance(), egressProp);
+ } catch (IllegalStateException e) {
+ mAcceptedEgressIface = null;
+ Slog.e(TAG, "Failed to start VPN", e);
+ showNotification(R.string.vpn_lockdown_error, R.drawable.vpn_disconnected);
+ }
} else {
Slog.e(TAG, "Invalid VPN profile; requires IP-based server and DNS");
showNotification(R.string.vpn_lockdown_error, R.drawable.vpn_disconnected);