Turn on removeExpiredService feature
Turn on removeExpiredService feature by: 1) Remove the unnecessary allowSearchOptionsToRemoveExpiredService flag. 2) Turn on the removeExpiredService flag in the MdnsSearchOptions. Bug: 285260665 Test: atest CtsNetTest FrameworksNetTests Change-Id: Ib115b40e70b0f81a7877deb73af7d61e2e0c385f
This commit is contained in:
committed by
Remi NGUYEN VAN
parent
ae9b229b7e
commit
ff96322c4f
@@ -619,6 +619,7 @@ public class NsdService extends INsdManager.Stub {
|
||||
final MdnsSearchOptions.Builder optionsBuilder =
|
||||
MdnsSearchOptions.newBuilder()
|
||||
.setNetwork(info.getNetwork())
|
||||
.setRemoveExpiredService(true)
|
||||
.setIsPassiveMode(true);
|
||||
if (typeAndSubtype.second != null) {
|
||||
// The parsing ensures subtype starts with an underscore.
|
||||
@@ -813,6 +814,7 @@ public class NsdService extends INsdManager.Stub {
|
||||
.setNetwork(info.getNetwork())
|
||||
.setIsPassiveMode(true)
|
||||
.setResolveInstanceName(info.getServiceName())
|
||||
.setRemoveExpiredService(true)
|
||||
.build();
|
||||
mMdnsDiscoveryManager.registerListener(
|
||||
resolveServiceType, listener, options);
|
||||
@@ -906,6 +908,7 @@ public class NsdService extends INsdManager.Stub {
|
||||
.setNetwork(info.getNetwork())
|
||||
.setIsPassiveMode(true)
|
||||
.setResolveInstanceName(info.getServiceName())
|
||||
.setRemoveExpiredService(true)
|
||||
.build();
|
||||
mMdnsDiscoveryManager.registerListener(
|
||||
resolveServiceType, listener, options);
|
||||
|
||||
@@ -94,10 +94,6 @@ public class MdnsConfigs {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean allowSearchOptionsToRemoveExpiredService() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean allowNetworkInterfaceIndexPropagation() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -66,9 +66,6 @@ public class MdnsServiceTypeClient {
|
||||
private final Map<String, MdnsResponse> instanceNameToResponse = new HashMap<>();
|
||||
private final boolean removeServiceAfterTtlExpires =
|
||||
MdnsConfigs.removeServiceAfterTtlExpires();
|
||||
private final boolean allowSearchOptionsToRemoveExpiredService =
|
||||
MdnsConfigs.allowSearchOptionsToRemoveExpiredService();
|
||||
|
||||
private final MdnsResponseDecoder.Clock clock;
|
||||
|
||||
@Nullable private MdnsSearchOptions searchOptions;
|
||||
@@ -374,9 +371,7 @@ public class MdnsServiceTypeClient {
|
||||
if (removeServiceAfterTtlExpires) {
|
||||
return true;
|
||||
}
|
||||
return allowSearchOptionsToRemoveExpiredService
|
||||
&& searchOptions != null
|
||||
&& searchOptions.removeExpiredService();
|
||||
return searchOptions != null && searchOptions.removeExpiredService();
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
|
||||
@@ -705,34 +705,8 @@ public class MdnsServiceTypeClientTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void processResponse_notAllowRemoveSearch_shouldNotRemove() throws Exception {
|
||||
final String serviceInstanceName = "service-instance-1";
|
||||
client.startSendAndReceive(
|
||||
mockListenerOne,
|
||||
MdnsSearchOptions.newBuilder().build());
|
||||
Runnable firstMdnsTask = currentThreadExecutor.getAndClearSubmittedRunnable();
|
||||
|
||||
// Process the initial response.
|
||||
client.processResponse(createResponse(
|
||||
serviceInstanceName, "192.168.1.1", 5353, /* subtype= */ "ABCDE",
|
||||
Collections.emptyMap(), TEST_TTL), INTERFACE_INDEX, mockNetwork);
|
||||
|
||||
// Clear the scheduled runnable.
|
||||
currentThreadExecutor.getAndClearLastScheduledRunnable();
|
||||
|
||||
// Simulate the case where the response is after TTL.
|
||||
doReturn(TEST_ELAPSED_REALTIME + TEST_TTL + 1L).when(mockDecoderClock).elapsedRealtime();
|
||||
firstMdnsTask.run();
|
||||
|
||||
// Verify removed callback was not called.
|
||||
verifyServiceRemovedNoCallback(mockListenerOne);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore("MdnsConfigs is not configurable currently.")
|
||||
public void processResponse_allowSearchOptionsToRemoveExpiredService_shouldRemove()
|
||||
public void processResponse_searchOptionsEnableServiceRemoval_shouldRemove()
|
||||
throws Exception {
|
||||
//MdnsConfigsFlagsImpl.allowSearchOptionsToRemoveExpiredService.override(true);
|
||||
final String serviceInstanceName = "service-instance-1";
|
||||
client =
|
||||
new MdnsServiceTypeClient(SERVICE_TYPE, mockSocketClient, currentThreadExecutor,
|
||||
@@ -742,7 +716,9 @@ public class MdnsServiceTypeClientTests {
|
||||
return mockPacketWriter;
|
||||
}
|
||||
};
|
||||
client.startSendAndReceive(mockListenerOne, MdnsSearchOptions.getDefaultOptions());
|
||||
MdnsSearchOptions searchOptions = MdnsSearchOptions.newBuilder().setRemoveExpiredService(
|
||||
true).build();
|
||||
client.startSendAndReceive(mockListenerOne, searchOptions);
|
||||
Runnable firstMdnsTask = currentThreadExecutor.getAndClearSubmittedRunnable();
|
||||
|
||||
// Process the initial response.
|
||||
|
||||
Reference in New Issue
Block a user