Do not disconnect existing VPN if seamless handover fails

If error happens during establishing of VPN, the cleanup logic tries to
disconnect the partially-created VPN network. At the moment this is not
working during VPN seamless handover since in this case no new network is
created and the existing VPN will be disconnected. Fix by not disconnecting
during the VPN handover case.

Test: cts-tradefed run commandAndExit cts-dev -m CtsHostsideNetworkTests -t com.android.cts.net.HostsideVpnTests
Bug: 110238496
Change-Id: I8cb2ab50596e61b0ac09e89eb1048816f00180d6
This commit is contained in:
Rubin Xu
2018-06-21 17:52:55 +01:00
parent d32d766a04
commit 307c525382

View File

@@ -1141,7 +1141,11 @@ public class Vpn {
}
} catch (RuntimeException e) {
IoUtils.closeQuietly(tun);
agentDisconnect();
// If this is not seamless handover, disconnect partially-established network when error
// occurs.
if (oldNetworkAgent != mNetworkAgent) {
agentDisconnect();
}
// restore old state
mConfig = oldConfig;
mConnection = oldConnection;