diff options
-rw-r--r-- | Android.bp | 1 | ||||
-rw-r--r-- | services/core/Android.bp | 1 | ||||
-rw-r--r-- | services/core/java/com/android/server/NetworkManagementService.java | 22 | ||||
-rw-r--r-- | tests/net/Android.mk | 6 |
4 files changed, 17 insertions, 13 deletions
diff --git a/Android.bp b/Android.bp index ee593aac39ad..5af63998b0e5 100644 --- a/Android.bp +++ b/Android.bp @@ -691,6 +691,7 @@ java_defaults { "android.hardware.radio-V1.0-java", "android.hardware.radio-V1.3-java", "android.hardware.usb.gadget-V1.0-java", + "netd_aidl_interface-java", ], // Loaded with System.loadLibrary by android.view.textclassifier diff --git a/services/core/Android.bp b/services/core/Android.bp index cae15bad5414..fcf9dc251519 100644 --- a/services/core/Android.bp +++ b/services/core/Android.bp @@ -43,6 +43,7 @@ java_library_static { "android.hardware.configstore-V1.0-java", "android.hardware.contexthub-V1.0-java", "android.hidl.manager-V1.0-java", + "netd_aidl_interface-java", ], } diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java index ab0a56516ff4..94a15f7d7312 100644 --- a/services/core/java/com/android/server/NetworkManagementService.java +++ b/services/core/java/com/android/server/NetworkManagementService.java @@ -57,6 +57,7 @@ import android.content.ContentResolver; import android.content.Context; import android.net.ConnectivityManager; import android.net.INetd; +import android.net.TetherStatsParcel; import android.net.INetworkManagementEventObserver; import android.net.ITetheringStatsProvider; import android.net.InterfaceConfiguration; @@ -1839,31 +1840,30 @@ public class NetworkManagementService extends INetworkManagementService.Stub return new NetworkStats(SystemClock.elapsedRealtime(), 0); } - final PersistableBundle bundle; + final TetherStatsParcel[] tetherStatsVec; try { - bundle = mNetdService.tetherGetStats(); + tetherStatsVec = mNetdService.tetherGetStats(); } catch (RemoteException | ServiceSpecificException e) { throw new IllegalStateException("problem parsing tethering stats: ", e); } final NetworkStats stats = new NetworkStats(SystemClock.elapsedRealtime(), - bundle.size()); + tetherStatsVec.length); final NetworkStats.Entry entry = new NetworkStats.Entry(); - for (String iface : bundle.keySet()) { - long[] statsArray = bundle.getLongArray(iface); + for (TetherStatsParcel tetherStats : tetherStatsVec) { try { - entry.iface = iface; + entry.iface = tetherStats.iface; entry.uid = UID_TETHERING; entry.set = SET_DEFAULT; entry.tag = TAG_NONE; - entry.rxBytes = statsArray[INetd.TETHER_STATS_RX_BYTES]; - entry.rxPackets = statsArray[INetd.TETHER_STATS_RX_PACKETS]; - entry.txBytes = statsArray[INetd.TETHER_STATS_TX_BYTES]; - entry.txPackets = statsArray[INetd.TETHER_STATS_TX_PACKETS]; + entry.rxBytes = tetherStats.rxBytes; + entry.rxPackets = tetherStats.rxPackets; + entry.txBytes = tetherStats.txBytes; + entry.txPackets = tetherStats.txPackets; stats.combineValues(entry); } catch (ArrayIndexOutOfBoundsException e) { - throw new IllegalStateException("invalid tethering stats for " + iface, e); + throw new IllegalStateException("invalid tethering stats " + e); } } diff --git a/tests/net/Android.mk b/tests/net/Android.mk index 750e2fb6f6b4..132135dc89bc 100644 --- a/tests/net/Android.mk +++ b/tests/net/Android.mk @@ -63,7 +63,8 @@ LOCAL_JNI_SHARED_LIBRARIES := \ libunwindstack \ libutilscallstack \ libziparchive \ - libz + libz \ + netd_aidl_interface-cpp LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk @@ -92,7 +93,8 @@ LOCAL_SHARED_LIBRARIES := \ liblog \ libcutils \ libnativehelper \ - libnetdaidl + libnetdaidl \ + netd_aidl_interface-cpp LOCAL_STATIC_LIBRARIES := \ libpcap \ |