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:
Yuyang Huang
2023-06-01 18:42:42 +09:00
committed by Remi NGUYEN VAN
parent ae9b229b7e
commit ff96322c4f
4 changed files with 8 additions and 38 deletions

View File

@@ -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);

View File

@@ -94,10 +94,6 @@ public class MdnsConfigs {
return false;
}
public static boolean allowSearchOptionsToRemoveExpiredService() {
return false;
}
public static boolean allowNetworkInterfaceIndexPropagation() {
return true;
}

View File

@@ -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

View File

@@ -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.