Remove ConnectivityManager and its usages from NetworkStatsService.
NSS needed it for getting VpnInfo[], NetworkState[] and activeLinkProperties which it used to query via ConnectivityManager. For VpnInfo[], this was racy as NSS may ignore intermediate changes to a VPN's underlying networks. See http://b/123961098 for more context. It may also lead to deadlocks b/w ConnectivityService and NetworkStatsService. See http://b/126245192 for more info. This change will ensure that NSS is never contending on any of ConnectivityService locks. Bug: 123961098 Bug: 126245192 Bug: 120145746 Test: atest FrameworksNetTests Change-Id: Id1da446b54d95ee68ed14079107b1a10318bcf8b Merged-In: I57e117bb4e9efe491b19d6b5a479f2d58d1c58e6
This commit is contained in:
@@ -19,11 +19,13 @@ package android.net;
|
||||
import android.net.DataUsageRequest;
|
||||
import android.net.INetworkStatsSession;
|
||||
import android.net.Network;
|
||||
import android.net.NetworkState;
|
||||
import android.net.NetworkStats;
|
||||
import android.net.NetworkStatsHistory;
|
||||
import android.net.NetworkTemplate;
|
||||
import android.os.IBinder;
|
||||
import android.os.Messenger;
|
||||
import com.android.internal.net.VpnInfo;
|
||||
|
||||
/** {@hide} */
|
||||
interface INetworkStatsService {
|
||||
@@ -58,7 +60,11 @@ interface INetworkStatsService {
|
||||
void incrementOperationCount(int uid, int tag, int operationCount);
|
||||
|
||||
/** Force update of ifaces. */
|
||||
void forceUpdateIfaces(in Network[] defaultNetworks);
|
||||
void forceUpdateIfaces(
|
||||
in Network[] defaultNetworks,
|
||||
in VpnInfo[] vpnArray,
|
||||
in NetworkState[] networkStates,
|
||||
in String activeIface);
|
||||
/** Force update of statistics. */
|
||||
void forceUpdate();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user