diff options
| author | 2021-03-23 08:08:01 +0000 | |
|---|---|---|
| committer | 2021-03-23 08:08:01 +0000 | |
| commit | 41df46a030e826ace525036a6eb797d021043c43 (patch) | |
| tree | 47e24401d2c51d4f476e533a479449771cdfe513 | |
| parent | 1bd31567f10cc39f3ad41173c13a8d1a4133ec3d (diff) | |
| parent | 5a328c2a86fa29d9938011d43e6a8be51c0cb895 (diff) | |
Merge "Remove NetdService, NetworkStackClient dependency" into sc-dev
5 files changed, 26 insertions, 34 deletions
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 19858488a917..fbba189e1d54 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -145,7 +145,6 @@ import android.net.NetworkRequest; import android.net.NetworkScore; import android.net.NetworkSpecifier; import android.net.NetworkStack; -import android.net.NetworkStackClient; import android.net.NetworkState; import android.net.NetworkStateSnapshot; import android.net.NetworkTestResultParcelable; @@ -172,13 +171,14 @@ import android.net.VpnTransportInfo; import android.net.metrics.IpConnectivityLog; import android.net.metrics.NetworkEvent; import android.net.netlink.InetDiagMessage; +import android.net.networkstack.ModuleNetworkStackClient; +import android.net.networkstack.NetworkStackClientBase; import android.net.resolv.aidl.DnsHealthEventParcel; import android.net.resolv.aidl.IDnsResolverUnsolicitedEventListener; import android.net.resolv.aidl.Nat64PrefixEventParcel; import android.net.resolv.aidl.PrivateDnsValidationEventParcel; import android.net.shared.PrivateDnsConfig; import android.net.util.MultinetworkPolicyTracker; -import android.net.util.NetdService; import android.os.BatteryStatsManager; import android.os.Binder; import android.os.Build; @@ -1121,10 +1121,10 @@ public class ConnectivityService extends IConnectivityManager.Stub } /** - * Get a reference to the NetworkStackClient. + * Get a reference to the ModuleNetworkStackClient. */ - public NetworkStackClient getNetworkStack() { - return NetworkStackClient.getInstance(); + public NetworkStackClientBase getNetworkStack() { + return ModuleNetworkStackClient.getInstance(null); } /** @@ -1183,7 +1183,8 @@ public class ConnectivityService extends IConnectivityManager.Stub public ConnectivityService(Context context) { this(context, getDnsResolver(context), new IpConnectivityLog(), - NetdService.getInstance(), new Dependencies()); + INetd.Stub.asInterface((IBinder) context.getSystemService(Context.NETD_SERVICE)), + new Dependencies()); } @VisibleForTesting @@ -2904,10 +2905,6 @@ public class ConnectivityService extends IConnectivityManager.Stub } pw.println(); - pw.println("NetworkStackClient logs:"); - pw.increaseIndent(); - NetworkStackClient.getInstance().dump(pw); - pw.decreaseIndent(); pw.println(); pw.println("Permission Monitor:"); diff --git a/services/core/java/com/android/server/TestNetworkService.java b/services/core/java/com/android/server/TestNetworkService.java index f5662772f59f..09873f4db045 100644 --- a/services/core/java/com/android/server/TestNetworkService.java +++ b/services/core/java/com/android/server/TestNetworkService.java @@ -35,7 +35,6 @@ import android.net.NetworkProvider; import android.net.RouteInfo; import android.net.TestNetworkInterface; import android.net.TestNetworkSpecifier; -import android.net.util.NetdService; import android.os.Binder; import android.os.Handler; import android.os.HandlerThread; @@ -86,7 +85,9 @@ class TestNetworkService extends ITestNetworkManager.Stub { mHandler = new Handler(mHandlerThread.getLooper()); mContext = Objects.requireNonNull(context, "missing Context"); - mNetd = Objects.requireNonNull(NetdService.getInstance(), "could not get netd instance"); + mNetd = Objects.requireNonNull( + INetd.Stub.asInterface((IBinder) context.getSystemService(Context.NETD_SERVICE)), + "could not get netd instance"); mCm = mContext.getSystemService(ConnectivityManager.class); mNetworkProvider = new NetworkProvider(mContext, mHandler.getLooper(), TEST_NETWORK_PROVIDER_NAME); diff --git a/tests/net/integration/src/android/net/TestNetworkStackClient.kt b/tests/net/integration/src/android/net/TestNetworkStackClient.kt index 01eb514a1c81..61ef5bdca487 100644 --- a/tests/net/integration/src/android/net/TestNetworkStackClient.kt +++ b/tests/net/integration/src/android/net/TestNetworkStackClient.kt @@ -19,6 +19,7 @@ package android.net import android.content.ComponentName import android.content.Context import android.content.Intent +import android.net.networkstack.NetworkStackClientBase import android.os.IBinder import com.android.server.net.integrationtests.TestNetworkStackService import org.mockito.Mockito.any @@ -29,28 +30,22 @@ import kotlin.test.fail const val TEST_ACTION_SUFFIX = ".Test" -class TestNetworkStackClient(context: Context) : NetworkStackClient(TestDependencies(context)) { +class TestNetworkStackClient(private val context: Context) : NetworkStackClientBase() { // TODO: consider switching to TrackRecord for more expressive checks private val lastCallbacks = HashMap<Network, INetworkMonitorCallbacks>() + private val moduleConnector = ConnectivityModuleConnector { _, action, _, _ -> + val intent = Intent(action) + val serviceName = TestNetworkStackService::class.qualifiedName + ?: fail("TestNetworkStackService name not found") + intent.component = ComponentName(context.packageName, serviceName) + return@ConnectivityModuleConnector intent + }.also { it.init(context) } - private class TestDependencies(private val context: Context) : Dependencies { - override fun addToServiceManager(service: IBinder) = Unit - override fun checkCallerUid() = Unit - - override fun getConnectivityModuleConnector(): ConnectivityModuleConnector { - return ConnectivityModuleConnector { _, _, _, inSystemProcess -> - getNetworkStackIntent(inSystemProcess) - }.also { it.init(context) } - } - - private fun getNetworkStackIntent(inSystemProcess: Boolean): Intent? { - // Simulate out-of-system-process config: in-process service not found (null intent) - if (inSystemProcess) return null - val intent = Intent(INetworkStackConnector::class.qualifiedName + TEST_ACTION_SUFFIX) - val serviceName = TestNetworkStackService::class.qualifiedName - ?: fail("TestNetworkStackService name not found") - intent.component = ComponentName(context.packageName, serviceName) - return intent + fun start() { + moduleConnector.startModuleService( + INetworkStackConnector::class.qualifiedName + TEST_ACTION_SUFFIX, + NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) { connector -> + onNetworkStackConnected(INetworkStackConnector.Stub.asInterface(connector)) } } diff --git a/tests/net/integration/src/com/android/server/net/integrationtests/ConnectivityServiceIntegrationTest.kt b/tests/net/integration/src/com/android/server/net/integrationtests/ConnectivityServiceIntegrationTest.kt index db49e0b0047e..14dddcbd6ce7 100644 --- a/tests/net/integration/src/com/android/server/net/integrationtests/ConnectivityServiceIntegrationTest.kt +++ b/tests/net/integration/src/com/android/server/net/integrationtests/ConnectivityServiceIntegrationTest.kt @@ -157,7 +157,6 @@ class ConnectivityServiceIntegrationTest { doReturn(IntArray(0)).`when`(systemConfigManager).getSystemPermissionUids(anyString()) networkStackClient = TestNetworkStackClient(realContext) - networkStackClient.init() networkStackClient.start() service = TestConnectivityService(makeDependencies()) diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index 0c2fb4ec6f27..db1334ab3ffe 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -216,7 +216,6 @@ import android.net.NetworkRequest; import android.net.NetworkScore; import android.net.NetworkSpecifier; import android.net.NetworkStack; -import android.net.NetworkStackClient; import android.net.NetworkStateSnapshot; import android.net.NetworkTestResultParcelable; import android.net.OemNetworkPreferences; @@ -236,6 +235,7 @@ import android.net.Uri; import android.net.VpnManager; import android.net.VpnTransportInfo; import android.net.metrics.IpConnectivityLog; +import android.net.networkstack.NetworkStackClientBase; import android.net.resolv.aidl.Nat64PrefixEventParcel; import android.net.resolv.aidl.PrivateDnsValidationEventParcel; import android.net.shared.NetworkMonitorUtils; @@ -446,7 +446,7 @@ public class ConnectivityServiceTest { @Mock NetworkStatsManager mStatsManager; @Mock IDnsResolver mMockDnsResolver; @Mock INetd mMockNetd; - @Mock NetworkStackClient mNetworkStack; + @Mock NetworkStackClientBase mNetworkStack; @Mock PackageManager mPackageManager; @Mock UserManager mUserManager; @Mock NotificationManager mNotificationManager; |