From 555e408928a33d2a78c5dfe203c26a5105ee7356 Mon Sep 17 00:00:00 2001 From: Xiao Ma Date: Wed, 10 Apr 2019 19:01:52 +0900 Subject: [PATCH] Wipe the data in IpMemoryStore database upon network factory reset. Bug:128499160 Test: manual Test: atest FrameworksNetTests NetworkStackTests Change-Id: Ib563463a861a5d27b1e9b5fbb92342249b573802 --- .../core/java/com/android/server/ConnectivityService.java | 4 ++++ tests/net/java/android/net/IpMemoryStoreTest.java | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 7fa9c6e857..4b2d481cfd 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -77,6 +77,7 @@ import android.net.INetworkStatsService; import android.net.ISocketKeepaliveCallback; import android.net.ITetheringEventCallback; import android.net.InetAddresses; +import android.net.IpMemoryStore; import android.net.IpPrefix; import android.net.LinkProperties; import android.net.LinkProperties.CompareResult; @@ -6893,6 +6894,9 @@ public class ConnectivityService extends IConnectivityManager.Stub final int userId = UserHandle.getCallingUserId(); + final IpMemoryStore ipMemoryStore = IpMemoryStore.getMemoryStore(mContext); + ipMemoryStore.factoryReset(); + // Turn airplane mode off setAirplaneMode(false); diff --git a/tests/net/java/android/net/IpMemoryStoreTest.java b/tests/net/java/android/net/IpMemoryStoreTest.java index 6e69b34fe4..b81ca36429 100644 --- a/tests/net/java/android/net/IpMemoryStoreTest.java +++ b/tests/net/java/android/net/IpMemoryStoreTest.java @@ -321,4 +321,11 @@ public class IpMemoryStoreTest { eq(TEST_OTHER_DATA_NAME), any()); assertEquals(TEST_NETWORK_ATTRIBUTES, new NetworkAttributes(mNapCaptor.getValue())); } + + @Test + public void testFactoryReset() throws RemoteException { + startIpMemoryStore(true /* supplyService */); + mStore.factoryReset(); + verify(mMockService, times(1)).factoryReset(); + } }