Merge "Remove NetdService, NetworkStackClient dependency"
This commit is contained in:
@@ -149,7 +149,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;
|
||||
@@ -176,13 +175,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;
|
||||
@@ -1183,10 +1183,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);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1245,7 +1245,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
|
||||
@@ -2988,10 +2989,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:");
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -157,7 +157,6 @@ class ConnectivityServiceIntegrationTest {
|
||||
doReturn(IntArray(0)).`when`(systemConfigManager).getSystemPermissionUids(anyString())
|
||||
|
||||
networkStackClient = TestNetworkStackClient(realContext)
|
||||
networkStackClient.init()
|
||||
networkStackClient.start()
|
||||
|
||||
service = TestConnectivityService(makeDependencies())
|
||||
|
||||
@@ -228,7 +228,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;
|
||||
@@ -248,6 +247,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;
|
||||
@@ -461,7 +461,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;
|
||||
|
||||
Reference in New Issue
Block a user