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

Commit ffa7b2f1 authored by Chiachang Wang's avatar Chiachang Wang
Browse files

Replace hidden NMS default network configuration API

Replace the hidden setDefaultNetId and clearDefaultNetId NMS
APIs with accessing INetd directly for the incoming
ConnectivityService mainline.

Bug: 170598012
Test: atest FrameworksNetTests
Test: manually connect and disconnect wifi
Change-Id: I162fae5ca444207a037e5ac4bf8fa0a77a648ca1
parent 1ee4a748
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -352,9 +352,6 @@ interface INetworkManagementService

    void addLegacyRouteForNetId(int netId, in RouteInfo routeInfo, int uid);

    void setDefaultNetId(int netId);
    void clearDefaultNetId();

    /**
     * Set permission for a network.
     * @param permission PERMISSION_NONE to clear permissions.
+3 −3
Original line number Diff line number Diff line
@@ -6708,11 +6708,11 @@ public class ConnectivityService extends IConnectivityManager.Stub

        try {
            if (null != newNetwork) {
                mNMS.setDefaultNetId(newNetwork.network.netId);
                mNetd.networkSetDefault(newNetwork.network.netId);
            } else {
                mNMS.clearDefaultNetId();
                mNetd.networkClearDefault();
            }
        } catch (Exception e) {
        } catch (RemoteException | ServiceSpecificException e) {
            loge("Exception setting default network :" + e);
        }

+0 −22
Original line number Diff line number Diff line
@@ -2019,28 +2019,6 @@ public class NetworkManagementService extends INetworkManagementService.Stub {
        }
    }

    @Override
    public void setDefaultNetId(int netId) {
        NetworkStack.checkNetworkStackPermission(mContext);

        try {
            mNetdService.networkSetDefault(netId);
        } catch (RemoteException | ServiceSpecificException e) {
            throw new IllegalStateException(e);
        }
    }

    @Override
    public void clearDefaultNetId() {
        NetworkStack.checkNetworkStackPermission(mContext);

        try {
            mNetdService.networkClearDefault();
        } catch (RemoteException | ServiceSpecificException e) {
            throw new IllegalStateException(e);
        }
    }

    @Override
    public void setNetworkPermission(int netId, int permission) {
        NetworkStack.checkNetworkStackPermission(mContext);
+7 −7
Original line number Diff line number Diff line
@@ -6021,23 +6021,23 @@ public class ConnectivityServiceTest {
        mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
        mCellNetworkAgent.connect(true);
        trustedCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
        verify(mNetworkManagementService).setDefaultNetId(eq(mCellNetworkAgent.getNetwork().netId));
        reset(mNetworkManagementService);
        verify(mMockNetd).networkSetDefault(eq(mCellNetworkAgent.getNetwork().netId));
        reset(mMockNetd);

        mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
        mWiFiNetworkAgent.connect(true);
        trustedCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
        verify(mNetworkManagementService).setDefaultNetId(eq(mWiFiNetworkAgent.getNetwork().netId));
        reset(mNetworkManagementService);
        verify(mMockNetd).networkSetDefault(eq(mWiFiNetworkAgent.getNetwork().netId));
        reset(mMockNetd);

        mWiFiNetworkAgent.removeCapability(NET_CAPABILITY_TRUSTED);
        trustedCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
        verify(mNetworkManagementService).setDefaultNetId(eq(mCellNetworkAgent.getNetwork().netId));
        reset(mNetworkManagementService);
        verify(mMockNetd).networkSetDefault(eq(mCellNetworkAgent.getNetwork().netId));
        reset(mMockNetd);

        mCellNetworkAgent.removeCapability(NET_CAPABILITY_TRUSTED);
        trustedCallback.expectCallback(CallbackEntry.LOST, mCellNetworkAgent);
        verify(mNetworkManagementService).clearDefaultNetId();
        verify(mMockNetd).networkClearDefault();

        mCm.unregisterNetworkCallback(trustedCallback);
    }