Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 41df46a0 authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN Committed by Android (Google) Code Review
Browse files

Merge "Remove NetdService, NetworkStackClient dependency" into sc-dev

parents 1bd31567 5a328c2a
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -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:");
+3 −2
Original line number Diff line number Diff line
@@ -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);
+14 −19
Original line number Diff line number Diff line
@@ -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 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)
    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 intent
        return@ConnectivityModuleConnector intent
    }.also { it.init(context) }

    fun start() {
        moduleConnector.startModuleService(
                INetworkStackConnector::class.qualifiedName + TEST_ACTION_SUFFIX,
                NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) { connector ->
            onNetworkStackConnected(INetworkStackConnector.Stub.asInterface(connector))
        }
    }

+0 −1
Original line number Diff line number Diff line
@@ -157,7 +157,6 @@ class ConnectivityServiceIntegrationTest {
        doReturn(IntArray(0)).`when`(systemConfigManager).getSystemPermissionUids(anyString())

        networkStackClient = TestNetworkStackClient(realContext)
        networkStackClient.init()
        networkStackClient.start()

        service = TestConnectivityService(makeDependencies())
+2 −2
Original line number Diff line number Diff line
@@ -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;