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 = final MdnsSearchOptions.Builder optionsBuilder =
MdnsSearchOptions.newBuilder() MdnsSearchOptions.newBuilder()
.setNetwork(info.getNetwork()) .setNetwork(info.getNetwork())
.setRemoveExpiredService(true)
.setIsPassiveMode(true); .setIsPassiveMode(true);
if (typeAndSubtype.second != null) { if (typeAndSubtype.second != null) {
// The parsing ensures subtype starts with an underscore. // The parsing ensures subtype starts with an underscore.
@@ -813,6 +814,7 @@ public class NsdService extends INsdManager.Stub {
.setNetwork(info.getNetwork()) .setNetwork(info.getNetwork())
.setIsPassiveMode(true) .setIsPassiveMode(true)
.setResolveInstanceName(info.getServiceName()) .setResolveInstanceName(info.getServiceName())
.setRemoveExpiredService(true)
.build(); .build();
mMdnsDiscoveryManager.registerListener( mMdnsDiscoveryManager.registerListener(
resolveServiceType, listener, options); resolveServiceType, listener, options);
@@ -906,6 +908,7 @@ public class NsdService extends INsdManager.Stub {
.setNetwork(info.getNetwork()) .setNetwork(info.getNetwork())
.setIsPassiveMode(true) .setIsPassiveMode(true)
.setResolveInstanceName(info.getServiceName()) .setResolveInstanceName(info.getServiceName())
.setRemoveExpiredService(true)
.build(); .build();
mMdnsDiscoveryManager.registerListener( mMdnsDiscoveryManager.registerListener(
resolveServiceType, listener, options); resolveServiceType, listener, options);

View File

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

View File

@@ -66,9 +66,6 @@ public class MdnsServiceTypeClient {
private final Map<String, MdnsResponse> instanceNameToResponse = new HashMap<>(); private final Map<String, MdnsResponse> instanceNameToResponse = new HashMap<>();
private final boolean removeServiceAfterTtlExpires = private final boolean removeServiceAfterTtlExpires =
MdnsConfigs.removeServiceAfterTtlExpires(); MdnsConfigs.removeServiceAfterTtlExpires();
private final boolean allowSearchOptionsToRemoveExpiredService =
MdnsConfigs.allowSearchOptionsToRemoveExpiredService();
private final MdnsResponseDecoder.Clock clock; private final MdnsResponseDecoder.Clock clock;
@Nullable private MdnsSearchOptions searchOptions; @Nullable private MdnsSearchOptions searchOptions;
@@ -374,9 +371,7 @@ public class MdnsServiceTypeClient {
if (removeServiceAfterTtlExpires) { if (removeServiceAfterTtlExpires) {
return true; return true;
} }
return allowSearchOptionsToRemoveExpiredService return searchOptions != null && searchOptions.removeExpiredService();
&& searchOptions != null
&& searchOptions.removeExpiredService();
} }
@VisibleForTesting @VisibleForTesting

View File

@@ -705,34 +705,8 @@ public class MdnsServiceTypeClientTests {
} }
@Test @Test
public void processResponse_notAllowRemoveSearch_shouldNotRemove() throws Exception { public void processResponse_searchOptionsEnableServiceRemoval_shouldRemove()
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()
throws Exception { throws Exception {
//MdnsConfigsFlagsImpl.allowSearchOptionsToRemoveExpiredService.override(true);
final String serviceInstanceName = "service-instance-1"; final String serviceInstanceName = "service-instance-1";
client = client =
new MdnsServiceTypeClient(SERVICE_TYPE, mockSocketClient, currentThreadExecutor, new MdnsServiceTypeClient(SERVICE_TYPE, mockSocketClient, currentThreadExecutor,
@@ -742,7 +716,9 @@ public class MdnsServiceTypeClientTests {
return mockPacketWriter; return mockPacketWriter;
} }
}; };
client.startSendAndReceive(mockListenerOne, MdnsSearchOptions.getDefaultOptions()); MdnsSearchOptions searchOptions = MdnsSearchOptions.newBuilder().setRemoveExpiredService(
true).build();
client.startSendAndReceive(mockListenerOne, searchOptions);
Runnable firstMdnsTask = currentThreadExecutor.getAndClearSubmittedRunnable(); Runnable firstMdnsTask = currentThreadExecutor.getAndClearSubmittedRunnable();
// Process the initial response. // Process the initial response.