diff options
| -rw-r--r-- | services/core/java/com/android/server/connectivity/Vpn.java | 8 | 
1 files changed, 3 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java index 0f17139e2678..1f4c7e6fa4e5 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java @@ -3744,12 +3744,10 @@ public class Vpn {                      + mUnderlyingNetworkCapabilities + " to " + nc);              final NetworkCapabilities oldNc = mUnderlyingNetworkCapabilities;              mUnderlyingNetworkCapabilities = nc; -            if (oldNc == null) { -                // A new default network is available. +            if (oldNc == null || !nc.getSubscriptionIds().equals(oldNc.getSubscriptionIds())) { +                // A new default network is available, or the subscription has changed. +                // Try to migrate the session, or failing that, start a new one.                  startOrMigrateIkeSession(mActiveNetwork); -            } else if (!nc.getSubscriptionIds().equals(oldNc.getSubscriptionIds())) { -                // Renew carrierConfig values. -                maybeMigrateIkeSessionAndUpdateVpnTransportInfo(mActiveNetwork);              }          }  |