am 24f9a26c: am 28dcf034: Merge "Propagate network state changes to the LockdownVpnTracker." into lmp-dev
* commit '24f9a26cea200d9452bd922d94f8669d87744f53': Propagate network state changes to the LockdownVpnTracker.
This commit is contained in:
@@ -2001,9 +2001,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
} else if (state == NetworkInfo.State.CONNECTED) {
|
} else if (state == NetworkInfo.State.CONNECTED) {
|
||||||
// handleConnect(info);
|
// handleConnect(info);
|
||||||
}
|
}
|
||||||
if (mLockdownTracker != null) {
|
notifyLockdownVpn(null);
|
||||||
mLockdownTracker.onNetworkInfoChanged(info);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case NetworkStateTracker.EVENT_CONFIGURATION_CHANGED: {
|
case NetworkStateTracker.EVENT_CONFIGURATION_CHANGED: {
|
||||||
@@ -2126,6 +2124,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
if (nai.networkRequests.get(mDefaultRequest.requestId) != null) {
|
if (nai.networkRequests.get(mDefaultRequest.requestId) != null) {
|
||||||
removeDataActivityTracking(nai);
|
removeDataActivityTracking(nai);
|
||||||
mActiveDefaultNetwork = ConnectivityManager.TYPE_NONE;
|
mActiveDefaultNetwork = ConnectivityManager.TYPE_NONE;
|
||||||
|
notifyLockdownVpn(nai);
|
||||||
requestNetworkTransitionWakelock(nai.name());
|
requestNetworkTransitionWakelock(nai.name());
|
||||||
}
|
}
|
||||||
for (NetworkAgentInfo networkToActivate : toActivate) {
|
for (NetworkAgentInfo networkToActivate : toActivate) {
|
||||||
@@ -3801,6 +3800,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
loge("Exception setting default network :" + e);
|
loge("Exception setting default network :" + e);
|
||||||
}
|
}
|
||||||
|
notifyLockdownVpn(newNetwork);
|
||||||
handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
|
handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
|
||||||
updateTcpBufferSizes(newNetwork);
|
updateTcpBufferSizes(newNetwork);
|
||||||
}
|
}
|
||||||
@@ -3916,6 +3916,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
}
|
}
|
||||||
mDefaultInetConditionPublished = newNetwork.validated ? 100 : 0;
|
mDefaultInetConditionPublished = newNetwork.validated ? 100 : 0;
|
||||||
mLegacyTypeTracker.add(newNetwork.networkInfo.getType(), newNetwork);
|
mLegacyTypeTracker.add(newNetwork.networkInfo.getType(), newNetwork);
|
||||||
|
notifyLockdownVpn(newNetwork);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4035,6 +4036,16 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
sendInetConditionBroadcast(nai.networkInfo);
|
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) {
|
private void updateNetworkInfo(NetworkAgentInfo networkAgent, NetworkInfo newInfo) {
|
||||||
NetworkInfo.State state = newInfo.getState();
|
NetworkInfo.State state = newInfo.getState();
|
||||||
NetworkInfo oldInfo = null;
|
NetworkInfo oldInfo = null;
|
||||||
@@ -4042,9 +4053,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
oldInfo = networkAgent.networkInfo;
|
oldInfo = networkAgent.networkInfo;
|
||||||
networkAgent.networkInfo = newInfo;
|
networkAgent.networkInfo = newInfo;
|
||||||
}
|
}
|
||||||
if (networkAgent.isVPN() && mLockdownTracker != null) {
|
notifyLockdownVpn(networkAgent);
|
||||||
mLockdownTracker.onVpnStateChanged(newInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (oldInfo != null && oldInfo.getState() == state) {
|
if (oldInfo != null && oldInfo.getState() == state) {
|
||||||
if (VDBG) log("ignoring duplicate network state non-change");
|
if (VDBG) log("ignoring duplicate network state non-change");
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import android.content.BroadcastReceiver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
|
import android.net.ConnectivityManager;
|
||||||
import android.net.LinkProperties;
|
import android.net.LinkProperties;
|
||||||
import android.net.LinkAddress;
|
import android.net.LinkAddress;
|
||||||
import android.net.NetworkInfo;
|
import android.net.NetworkInfo;
|
||||||
@@ -113,7 +114,6 @@ public class LockdownVpnTracker {
|
|||||||
* connection when ready, or setting firewall rules once VPN is connected.
|
* connection when ready, or setting firewall rules once VPN is connected.
|
||||||
*/
|
*/
|
||||||
private void handleStateChangedLocked() {
|
private void handleStateChangedLocked() {
|
||||||
Slog.d(TAG, "handleStateChanged()");
|
|
||||||
|
|
||||||
final NetworkInfo egressInfo = mConnService.getActiveNetworkInfoUnfiltered();
|
final NetworkInfo egressInfo = mConnService.getActiveNetworkInfoUnfiltered();
|
||||||
final LinkProperties egressProp = mConnService.getActiveLinkProperties();
|
final LinkProperties egressProp = mConnService.getActiveLinkProperties();
|
||||||
@@ -126,6 +126,14 @@ public class LockdownVpnTracker {
|
|||||||
|| State.DISCONNECTED.equals(egressInfo.getState());
|
|| State.DISCONNECTED.equals(egressInfo.getState());
|
||||||
final boolean egressChanged = egressProp == null
|
final boolean egressChanged = egressProp == null
|
||||||
|| !TextUtils.equals(mAcceptedEgressIface, egressProp.getInterfaceName());
|
|| !TextUtils.equals(mAcceptedEgressIface, egressProp.getInterfaceName());
|
||||||
|
|
||||||
|
final String egressTypeName = (egressInfo == null) ?
|
||||||
|
null : ConnectivityManager.getNetworkTypeName(egressInfo.getType());
|
||||||
|
final String egressIface = (egressProp == null) ?
|
||||||
|
null : egressProp.getInterfaceName();
|
||||||
|
Slog.d(TAG, "handleStateChanged: egress=" + egressTypeName +
|
||||||
|
" " + mAcceptedEgressIface + "->" + egressIface);
|
||||||
|
|
||||||
if (egressDisconnected || egressChanged) {
|
if (egressDisconnected || egressChanged) {
|
||||||
clearSourceRulesLocked();
|
clearSourceRulesLocked();
|
||||||
mAcceptedEgressIface = null;
|
mAcceptedEgressIface = null;
|
||||||
@@ -252,6 +260,7 @@ public class LockdownVpnTracker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void reset() {
|
public void reset() {
|
||||||
|
Slog.d(TAG, "reset()");
|
||||||
synchronized (mStateLock) {
|
synchronized (mStateLock) {
|
||||||
// cycle tracker, reset error count, and trigger retry
|
// cycle tracker, reset error count, and trigger retry
|
||||||
shutdownLocked();
|
shutdownLocked();
|
||||||
@@ -277,7 +286,7 @@ public class LockdownVpnTracker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onNetworkInfoChanged(NetworkInfo info) {
|
public void onNetworkInfoChanged() {
|
||||||
synchronized (mStateLock) {
|
synchronized (mStateLock) {
|
||||||
handleStateChangedLocked();
|
handleStateChangedLocked();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user