Loading core/java/com/android/server/NetworkManagementSocketTagger.java +6 −8 Original line number Diff line number Diff line Loading @@ -16,20 +16,14 @@ package com.android.server; import android.net.NetworkStats; import android.os.SystemProperties; import android.util.Log; import android.util.Slog; import dalvik.system.SocketTagger; import libcore.io.IoUtils; import java.io.FileDescriptor; import java.io.FileOutputStream; import java.io.IOException; import java.math.BigInteger; import java.net.SocketException; import java.nio.charset.Charsets; /** * Assigns tags to sockets for traffic stats. Loading Loading @@ -141,8 +135,12 @@ public final class NetworkManagementSocketTagger extends SocketTagger { * format like {@code 0x7fffffff00000000}. */ public static int kernelToTag(String string) { // TODO: migrate to direct integer instead of odd shifting return (int) (Long.decode(string) >> 32); int length = string.length(); if (length > 10) { return Long.decode(string.substring(0, length - 8)).intValue(); } else { return 0; } } private static native int native_tagSocketFd(FileDescriptor fd, int tag, int uid); Loading core/tests/coretests/src/com/android/internal/net/NetworkStatsFactoryTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static com.android.server.NetworkManagementSocketTagger.kernelToTag; import android.content.res.Resources; import android.net.NetworkStats; import android.net.TrafficStats; import android.test.AndroidTestCase; import com.android.frameworks.coretests.R; Loading Loading @@ -138,6 +139,12 @@ public class NetworkStatsFactoryTest extends AndroidTestCase { assertEquals(2147483647, kernelToTag("0x7fffffff00000000")); assertEquals(0, kernelToTag("0x0000000000000000")); assertEquals(2147483136, kernelToTag("0x7FFFFE0000000000")); assertEquals(0, kernelToTag("0x0")); assertEquals(0, kernelToTag("0xf00d")); assertEquals(1, kernelToTag("0x100000000")); assertEquals(14438007, kernelToTag("0xdc4e7700000000")); assertEquals(TrafficStats.TAG_SYSTEM_DOWNLOAD, kernelToTag("0xffffff0100000000")); } public void testNetworkStatsWithSet() throws Exception { Loading Loading
core/java/com/android/server/NetworkManagementSocketTagger.java +6 −8 Original line number Diff line number Diff line Loading @@ -16,20 +16,14 @@ package com.android.server; import android.net.NetworkStats; import android.os.SystemProperties; import android.util.Log; import android.util.Slog; import dalvik.system.SocketTagger; import libcore.io.IoUtils; import java.io.FileDescriptor; import java.io.FileOutputStream; import java.io.IOException; import java.math.BigInteger; import java.net.SocketException; import java.nio.charset.Charsets; /** * Assigns tags to sockets for traffic stats. Loading Loading @@ -141,8 +135,12 @@ public final class NetworkManagementSocketTagger extends SocketTagger { * format like {@code 0x7fffffff00000000}. */ public static int kernelToTag(String string) { // TODO: migrate to direct integer instead of odd shifting return (int) (Long.decode(string) >> 32); int length = string.length(); if (length > 10) { return Long.decode(string.substring(0, length - 8)).intValue(); } else { return 0; } } private static native int native_tagSocketFd(FileDescriptor fd, int tag, int uid); Loading
core/tests/coretests/src/com/android/internal/net/NetworkStatsFactoryTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static com.android.server.NetworkManagementSocketTagger.kernelToTag; import android.content.res.Resources; import android.net.NetworkStats; import android.net.TrafficStats; import android.test.AndroidTestCase; import com.android.frameworks.coretests.R; Loading Loading @@ -138,6 +139,12 @@ public class NetworkStatsFactoryTest extends AndroidTestCase { assertEquals(2147483647, kernelToTag("0x7fffffff00000000")); assertEquals(0, kernelToTag("0x0000000000000000")); assertEquals(2147483136, kernelToTag("0x7FFFFE0000000000")); assertEquals(0, kernelToTag("0x0")); assertEquals(0, kernelToTag("0xf00d")); assertEquals(1, kernelToTag("0x100000000")); assertEquals(14438007, kernelToTag("0xdc4e7700000000")); assertEquals(TrafficStats.TAG_SYSTEM_DOWNLOAD, kernelToTag("0xffffff0100000000")); } public void testNetworkStatsWithSet() throws Exception { Loading