Propagate network state changes to the LockdownVpnTracker.
Bug: 17695048
Change-Id: I10378df0ab545729a6a315fd1bc8870cd98f47b3
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index b29cdf4..6a6dcaf 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -2001,9 +2001,7 @@
} else if (state == NetworkInfo.State.CONNECTED) {
// handleConnect(info);
}
- if (mLockdownTracker != null) {
- mLockdownTracker.onNetworkInfoChanged(info);
- }
+ notifyLockdownVpn(null);
break;
}
case NetworkStateTracker.EVENT_CONFIGURATION_CHANGED: {
@@ -2126,6 +2124,7 @@
if (nai.networkRequests.get(mDefaultRequest.requestId) != null) {
removeDataActivityTracking(nai);
mActiveDefaultNetwork = ConnectivityManager.TYPE_NONE;
+ notifyLockdownVpn(nai);
requestNetworkTransitionWakelock(nai.name());
}
for (NetworkAgentInfo networkToActivate : toActivate) {
@@ -3801,6 +3800,7 @@
} catch (Exception e) {
loge("Exception setting default network :" + e);
}
+ notifyLockdownVpn(newNetwork);
handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
updateTcpBufferSizes(newNetwork);
}
@@ -3916,6 +3916,7 @@
}
mDefaultInetConditionPublished = newNetwork.validated ? 100 : 0;
mLegacyTypeTracker.add(newNetwork.networkInfo.getType(), newNetwork);
+ notifyLockdownVpn(newNetwork);
}
}
}
@@ -4035,6 +4036,16 @@
sendInetConditionBroadcast(nai.networkInfo);
}
+ private void notifyLockdownVpn(NetworkAgentInfo nai) {
+ if (mLockdownTracker != null) {
+ if (nai != null && nai.isVPN()) {
+ mLockdownTracker.onVpnStateChanged(nai.networkInfo);
+ } else {
+ mLockdownTracker.onNetworkInfoChanged();
+ }
+ }
+ }
+
private void updateNetworkInfo(NetworkAgentInfo networkAgent, NetworkInfo newInfo) {
NetworkInfo.State state = newInfo.getState();
NetworkInfo oldInfo = null;
@@ -4042,9 +4053,7 @@
oldInfo = networkAgent.networkInfo;
networkAgent.networkInfo = newInfo;
}
- if (networkAgent.isVPN() && mLockdownTracker != null) {
- mLockdownTracker.onVpnStateChanged(newInfo);
- }
+ notifyLockdownVpn(networkAgent);
if (oldInfo != null && oldInfo.getState() == state) {
if (VDBG) log("ignoring duplicate network state non-change");