Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f55958fc authored by Chiachang Wang's avatar Chiachang Wang Committed by Gerrit Code Review
Browse files

Merge "Disconnect VPN when the underlying network is lost"

parents 6196e669 fc43b2a0
Loading
Loading
Loading
Loading
+36 −33
Original line number Diff line number Diff line
@@ -3210,10 +3210,7 @@ public class Vpn {
                return;
            }

            if (mSession != null && mMobikeEnabled) {
                Log.d(
                        TAG,
                        "IKE Session has mobility. Delay handleSessionLost for losing network "
            Log.d(TAG, "Schedule a delay handleSessionLost for losing network "
                            + network
                            + " on session with token "
                            + mCurrentToken);
@@ -3226,7 +3223,16 @@ public class Vpn {
                    mExecutor.schedule(
                            () -> {
                                if (isActiveToken(token)) {
                                        handleSessionLost(null /* exception */, network);
                                    handleSessionLost(new IkeNetworkLostException(network),
                                            network);

                                    synchronized (Vpn.this) {
                                        // Ignore stale runner.
                                        if (mVpnRunner != this) return;

                                        updateState(DetailedState.DISCONNECTED,
                                                "Network lost");
                                    }
                                } else {
                                    Log.d(
                                            TAG,
@@ -3241,10 +3247,7 @@ public class Vpn {
                            },
                            NETWORK_LOST_TIMEOUT_MS,
                            TimeUnit.MILLISECONDS);
            } else {
                Log.d(TAG, "Call handleSessionLost for losing network " + network);
                handleSessionLost(null /* exception */, network);
            }

        }

        private void cancelHandleNetworkLostTimeout() {