Merge "Stop using VPNs in getActiveNetworkForUidInternal."
This commit is contained in:
@@ -28,7 +28,6 @@ import static android.net.ConnectivityDiagnosticsManager.DataStallReport.KEY_DNS
|
|||||||
import static android.net.ConnectivityDiagnosticsManager.DataStallReport.KEY_TCP_METRICS_COLLECTION_PERIOD_MILLIS;
|
import static android.net.ConnectivityDiagnosticsManager.DataStallReport.KEY_TCP_METRICS_COLLECTION_PERIOD_MILLIS;
|
||||||
import static android.net.ConnectivityDiagnosticsManager.DataStallReport.KEY_TCP_PACKET_FAIL_RATE;
|
import static android.net.ConnectivityDiagnosticsManager.DataStallReport.KEY_TCP_PACKET_FAIL_RATE;
|
||||||
import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
|
import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
|
||||||
import static android.net.ConnectivityManager.NETID_UNSET;
|
|
||||||
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
|
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
|
||||||
import static android.net.ConnectivityManager.TYPE_ETHERNET;
|
import static android.net.ConnectivityManager.TYPE_ETHERNET;
|
||||||
import static android.net.ConnectivityManager.TYPE_NONE;
|
import static android.net.ConnectivityManager.TYPE_NONE;
|
||||||
@@ -1444,31 +1443,20 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Network getActiveNetworkForUidInternal(final int uid, boolean ignoreBlocked) {
|
private Network getActiveNetworkForUidInternal(final int uid, boolean ignoreBlocked) {
|
||||||
final int user = UserHandle.getUserId(uid);
|
final NetworkAgentInfo vpnNai = getVpnForUid(uid);
|
||||||
int vpnNetId = NETID_UNSET;
|
if (vpnNai != null) {
|
||||||
synchronized (mVpns) {
|
final NetworkCapabilities requiredCaps = createDefaultNetworkCapabilitiesForUid(uid);
|
||||||
final Vpn vpn = mVpns.get(user);
|
if (requiredCaps.satisfiedByNetworkCapabilities(vpnNai.networkCapabilities)) {
|
||||||
// TODO : now that capabilities contain the UID, the appliesToUid test should
|
return vpnNai.network;
|
||||||
// be removed as the satisfying test below should be enough.
|
|
||||||
if (vpn != null && vpn.appliesToUid(uid)) vpnNetId = vpn.getNetId();
|
|
||||||
}
|
|
||||||
NetworkAgentInfo nai;
|
|
||||||
if (vpnNetId != NETID_UNSET) {
|
|
||||||
nai = getNetworkAgentInfoForNetId(vpnNetId);
|
|
||||||
if (nai != null) {
|
|
||||||
final NetworkCapabilities requiredCaps =
|
|
||||||
createDefaultNetworkCapabilitiesForUid(uid);
|
|
||||||
if (requiredCaps.satisfiedByNetworkCapabilities(nai.networkCapabilities)) {
|
|
||||||
return nai.network;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
nai = getDefaultNetwork();
|
|
||||||
if (nai != null && isNetworkWithCapabilitiesBlocked(
|
NetworkAgentInfo nai = getDefaultNetwork();
|
||||||
nai.networkCapabilities, uid, ignoreBlocked)) {
|
if (nai == null || isNetworkWithCapabilitiesBlocked(nai.networkCapabilities, uid,
|
||||||
nai = null;
|
ignoreBlocked)) {
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
return nai != null ? nai.network : null;
|
return nai.network;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Public because it's used by mLockdownTracker.
|
// Public because it's used by mLockdownTracker.
|
||||||
@@ -4830,15 +4818,15 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
if (mLockdownEnabled) {
|
if (mLockdownEnabled) {
|
||||||
return new VpnInfo[0];
|
return new VpnInfo[0];
|
||||||
}
|
}
|
||||||
List<VpnInfo> infoList = new ArrayList<>();
|
|
||||||
for (NetworkAgentInfo nai : mNetworkAgentInfos) {
|
|
||||||
VpnInfo info = createVpnInfo(nai);
|
|
||||||
if (info != null) {
|
|
||||||
infoList.add(info);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return infoList.toArray(new VpnInfo[infoList.size()]);
|
|
||||||
}
|
}
|
||||||
|
List<VpnInfo> infoList = new ArrayList<>();
|
||||||
|
for (NetworkAgentInfo nai : mNetworkAgentInfos) {
|
||||||
|
VpnInfo info = createVpnInfo(nai);
|
||||||
|
if (info != null) {
|
||||||
|
infoList.add(info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return infoList.toArray(new VpnInfo[infoList.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user