Move NetworkStack to services.net

NetworkStack is only used in services.net or clients of services.net. It
cannot stay in framework.jar because it needs to depend on AIDL
interfaces, which would conflict with app implementations if they were
in framework.jar.

Test: atest FrameworksNetTests NetworkStackTests
Bug: 124033493
Change-Id: Ib1d08a3669983640119d008db7e2990fa798724f
Merged-In: I501b125a388c1100c2182bde4670944c2f0d7a02
This commit is contained in:
Remi NGUYEN VAN
2019-02-14 18:04:20 +09:00
parent eab0f54735
commit ef59a21ff4
3 changed files with 14 additions and 8 deletions

View File

@@ -87,6 +87,7 @@ import android.net.NetworkQuotaInfo;
import android.net.NetworkRequest; import android.net.NetworkRequest;
import android.net.NetworkSpecifier; import android.net.NetworkSpecifier;
import android.net.NetworkStack; import android.net.NetworkStack;
import android.net.NetworkStackClient;
import android.net.NetworkState; import android.net.NetworkState;
import android.net.NetworkUtils; import android.net.NetworkUtils;
import android.net.NetworkWatchlistManager; import android.net.NetworkWatchlistManager;
@@ -5093,7 +5094,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
if (DBG) log("registerNetworkAgent " + nai); if (DBG) log("registerNetworkAgent " + nai);
final long token = Binder.clearCallingIdentity(); final long token = Binder.clearCallingIdentity();
try { try {
mContext.getSystemService(NetworkStack.class).makeNetworkMonitor( getNetworkStack().makeNetworkMonitor(
toStableParcelable(nai.network), name, new NetworkMonitorCallbacks(nai)); toStableParcelable(nai.network), name, new NetworkMonitorCallbacks(nai));
} finally { } finally {
Binder.restoreCallingIdentity(token); Binder.restoreCallingIdentity(token);
@@ -5105,6 +5106,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
return nai.network.netId; return nai.network.netId;
} }
@VisibleForTesting
protected NetworkStackClient getNetworkStack() {
return NetworkStackClient.getInstance();
}
private void handleRegisterNetworkAgent(NetworkAgentInfo nai, INetworkMonitor networkMonitor) { private void handleRegisterNetworkAgent(NetworkAgentInfo nai, INetworkMonitor networkMonitor) {
nai.onNetworkMonitorCreated(networkMonitor); nai.onNetworkMonitorCreated(networkMonitor);
if (VDBG) log("Got NetworkAgent Messenger"); if (VDBG) log("Got NetworkAgent Messenger");

View File

@@ -123,7 +123,7 @@ import android.net.NetworkMisc;
import android.net.NetworkParcelable; import android.net.NetworkParcelable;
import android.net.NetworkRequest; import android.net.NetworkRequest;
import android.net.NetworkSpecifier; import android.net.NetworkSpecifier;
import android.net.NetworkStack; import android.net.NetworkStackClient;
import android.net.NetworkUtils; import android.net.NetworkUtils;
import android.net.ProxyInfo; import android.net.ProxyInfo;
import android.net.RouteInfo; import android.net.RouteInfo;
@@ -245,7 +245,7 @@ public class ConnectivityServiceTest {
@Mock INetworkStatsService mStatsService; @Mock INetworkStatsService mStatsService;
@Mock INetworkPolicyManager mNpm; @Mock INetworkPolicyManager mNpm;
@Mock INetd mMockNetd; @Mock INetd mMockNetd;
@Mock NetworkStack mNetworkStack; @Mock NetworkStackClient mNetworkStack;
private ArgumentCaptor<String[]> mStringArrayCaptor = ArgumentCaptor.forClass(String[].class); private ArgumentCaptor<String[]> mStringArrayCaptor = ArgumentCaptor.forClass(String[].class);
@@ -1060,6 +1060,11 @@ public class ConnectivityServiceTest {
return (WrappedMultinetworkPolicyTracker) mMultinetworkPolicyTracker; return (WrappedMultinetworkPolicyTracker) mMultinetworkPolicyTracker;
} }
@Override
protected NetworkStackClient getNetworkStack() {
return mNetworkStack;
}
@Override @Override
public WakeupMessage makeWakeupMessage( public WakeupMessage makeWakeupMessage(
Context context, Handler handler, String cmdName, int cmd, Object obj) { Context context, Handler handler, String cmdName, int cmd, Object obj) {

View File

@@ -37,7 +37,6 @@ import android.net.Network;
import android.net.NetworkCapabilities; import android.net.NetworkCapabilities;
import android.net.NetworkInfo; import android.net.NetworkInfo;
import android.net.NetworkMisc; import android.net.NetworkMisc;
import android.net.NetworkStack;
import android.os.INetworkManagementService; import android.os.INetworkManagementService;
import android.support.test.filters.SmallTest; import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4; import android.support.test.runner.AndroidJUnit4;
@@ -74,16 +73,12 @@ public class LingerMonitorTest {
@Mock NetworkMisc mMisc; @Mock NetworkMisc mMisc;
@Mock NetworkNotificationManager mNotifier; @Mock NetworkNotificationManager mNotifier;
@Mock Resources mResources; @Mock Resources mResources;
@Mock NetworkStack mNetworkStack;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
when(mCtx.getResources()).thenReturn(mResources); when(mCtx.getResources()).thenReturn(mResources);
when(mCtx.getPackageName()).thenReturn("com.android.server.connectivity"); when(mCtx.getPackageName()).thenReturn("com.android.server.connectivity");
when(mCtx.getSystemServiceName(NetworkStack.class))
.thenReturn(Context.NETWORK_STACK_SERVICE);
when(mCtx.getSystemService(Context.NETWORK_STACK_SERVICE)).thenReturn(mNetworkStack);
mMonitor = new TestableLingerMonitor(mCtx, mNotifier, HIGH_DAILY_LIMIT, HIGH_RATE_LIMIT); mMonitor = new TestableLingerMonitor(mCtx, mNotifier, HIGH_DAILY_LIMIT, HIGH_RATE_LIMIT);
} }