summaryrefslogtreecommitdiff
path: root/service-t/src/com/android/server/net/NetworkStatsService.java
diff options
context:
space:
mode:
authorMark Chien <markchien@google.com>2022-01-25 03:34:14 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-01-25 03:34:14 +0000
commitf113431a5223f1b05ec9597fd79c79a39274ea7c (patch)
tree31df512d0adc6b1263f4c2f0a3c34dee165c744a /service-t/src/com/android/server/net/NetworkStatsService.java
parentce13cf7c325755c5c9def82177be0dea24a9034b (diff)
parente337d9e9950ed6ca7ef83d347fb66053bedd25fc (diff)
Merge "Replace INetd#trafficSwapActiveStatsMap with ConnectivityManager API"
Diffstat (limited to 'service-t/src/com/android/server/net/NetworkStatsService.java')
-rw-r--r--service-t/src/com/android/server/net/NetworkStatsService.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/service-t/src/com/android/server/net/NetworkStatsService.java b/service-t/src/com/android/server/net/NetworkStatsService.java
index d78c2c4038..243d621647 100644
--- a/service-t/src/com/android/server/net/NetworkStatsService.java
+++ b/service-t/src/com/android/server/net/NetworkStatsService.java
@@ -422,7 +422,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
final NetworkStatsService service = new NetworkStatsService(context,
INetd.Stub.asInterface((IBinder) context.getSystemService(Context.NETD_SERVICE)),
alarmManager, wakeLock, getDefaultClock(),
- new DefaultNetworkStatsSettings(), new NetworkStatsFactory(netd),
+ new DefaultNetworkStatsSettings(), new NetworkStatsFactory(context),
new NetworkStatsObservers(), getDefaultSystemDir(), getDefaultBaseDir(),
new Dependencies());
@@ -1000,8 +1000,17 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
}
// TODO: switch to data layer stats once kernel exports
- // for now, read network layer stats and flatten across all ifaces
- final NetworkStats networkLayer = readNetworkStatsUidDetail(uid, INTERFACES_ALL, TAG_ALL);
+ // for now, read network layer stats and flatten across all ifaces.
+ // This function is used to query NeworkStats for calle's uid. The only caller method
+ // TrafficStats#getDataLayerSnapshotForUid alrady claim no special permission to query
+ // its own NetworkStats.
+ final long ident = Binder.clearCallingIdentity();
+ final NetworkStats networkLayer;
+ try {
+ networkLayer = readNetworkStatsUidDetail(uid, INTERFACES_ALL, TAG_ALL);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
// splice in operation counts
networkLayer.spliceOperationsFrom(mUidOperations);