diff options
author | Remi NGUYEN VAN <reminv@google.com> | 2019-05-22 23:36:12 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-05-22 23:36:12 +0000 |
commit | f00b63f1cab6254495b3c87158b3c5dd16b5f9f2 (patch) | |
tree | d6c4c5b765053540ce46a7f279a49f048dca9e59 /packages/NetworkStack | |
parent | 3891c698cbe64b25a6e11a641f833bbcd3b498ac (diff) | |
parent | aabe5a01858c39fc568691cbbb7e144edfe783cf (diff) |
Merge "Address comments on dumpsys network_stack version" into qt-dev
Diffstat (limited to 'packages/NetworkStack')
-rw-r--r-- | packages/NetworkStack/src/com/android/server/NetworkStackService.java | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/packages/NetworkStack/src/com/android/server/NetworkStackService.java b/packages/NetworkStack/src/com/android/server/NetworkStackService.java index c394d4c4cfd3..2fae0c703084 100644 --- a/packages/NetworkStack/src/com/android/server/NetworkStackService.java +++ b/packages/NetworkStack/src/com/android/server/NetworkStackService.java @@ -49,6 +49,7 @@ import android.net.shared.PrivateDnsConfig; import android.net.util.SharedLog; import android.os.IBinder; import android.os.RemoteException; +import android.util.ArraySet; import com.android.internal.annotations.GuardedBy; import com.android.internal.util.IndentingPrintWriter; @@ -62,7 +63,6 @@ import java.util.ArrayDeque; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; -import java.util.concurrent.atomic.AtomicInteger; /** * Android service used to start the network stack when bound to via an intent. @@ -118,14 +118,12 @@ public class NetworkStackService extends Service { @GuardedBy("mValidationLogs") private final ArrayDeque<SharedLog> mValidationLogs = new ArrayDeque<>(MAX_VALIDATION_LOGS); - private static final int VERSION_UNKNOWN = 0; private static final String DUMPSYS_ARG_VERSION = "version"; - /** Version of the AIDL interfaces observed on the system */ - private final AtomicInteger mSystemAidlVersion = new AtomicInteger(VERSION_UNKNOWN); - - /** Whether different versions have been observed on interfaces provided by the system */ - private volatile boolean mConflictingSystemAidlVersions = false; + /** Version of the framework AIDL interfaces observed. Should hold only one value. */ + @GuardedBy("mFrameworkAidlVersions") + private final ArraySet<Integer> mFrameworkAidlVersions = new ArraySet<>(1); + private final int mNetdAidlVersion; private SharedLog addValidationLogs(Network network, String name) { final SharedLog log = new SharedLog(NUM_VALIDATION_LOG_LINES, network + " - " + name); @@ -146,6 +144,15 @@ public class NetworkStackService extends Service { mCm = context.getSystemService(ConnectivityManager.class); mIpMemoryStoreService = new IpMemoryStoreService(context); + int netdVersion; + try { + netdVersion = mNetd.getInterfaceVersion(); + } catch (RemoteException e) { + mLog.e("Error obtaining INetd version", e); + netdVersion = -1; + } + mNetdAidlVersion = netdVersion; + try { mObserverRegistry.register(mNetd); } catch (RemoteException e) { @@ -154,9 +161,8 @@ public class NetworkStackService extends Service { } private void updateSystemAidlVersion(final int version) { - final int previousVersion = mSystemAidlVersion.getAndSet(version); - if (previousVersion != VERSION_UNKNOWN && previousVersion != version) { - mConflictingSystemAidlVersions = true; + synchronized (mFrameworkAidlVersions) { + mFrameworkAidlVersions.add(version); } } @@ -230,12 +236,16 @@ public class NetworkStackService extends Service { protected void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter fout, @Nullable String[] args) { checkDumpPermission(); + + final IndentingPrintWriter pw = new IndentingPrintWriter(fout, " "); + pw.println("NetworkStack version:"); + dumpVersion(pw); + pw.println(); + if (args != null && args.length >= 1 && DUMPSYS_ARG_VERSION.equals(args[0])) { - dumpVersion(fout); return; } - final IndentingPrintWriter pw = new IndentingPrintWriter(fout, " "); pw.println("NetworkStack logs:"); mLog.dump(fd, pw, args); @@ -283,8 +293,10 @@ public class NetworkStackService extends Service { */ private void dumpVersion(@NonNull PrintWriter fout) { fout.println("NetworkStackConnector: " + this.VERSION); - fout.println("SystemServer: " + mSystemAidlVersion); - fout.println("SystemServerConflicts: " + mConflictingSystemAidlVersions); + synchronized (mFrameworkAidlVersions) { + fout.println("SystemServer: " + mFrameworkAidlVersions); + } + fout.println("Netd: " + mNetdAidlVersion); } @Override |