Merge "Enable useSessionIdToScheduleMdnsTask" am: 01b988255f

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2619296

Change-Id: Id63b71566f9e4feb201ebb41c619e75ba4384183
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Yuyang Huang
2023-06-08 11:18:09 +00:00
committed by Automerger Merge Worker
3 changed files with 12 additions and 9 deletions

View File

@@ -51,7 +51,7 @@ public class MdnsConfigs {
}
public static boolean useSessionIdToScheduleMdnsTask() {
return false;
return true;
}
public static boolean shouldCancelScanTaskWhenFutureIsNull() {

View File

@@ -191,14 +191,14 @@ public class MdnsServiceTypeClient {
}
// Cancel the next scheduled periodical task.
if (requestTaskFuture != null) {
requestTaskFuture.cancel(true);
cancelRequestTaskLocked();
}
// Keep tracking the ScheduledFuture for the task so we can cancel it if caller is not
// interested anymore.
final QueryTaskConfig taskConfig = new QueryTaskConfig(
searchOptions.getSubtypes(),
searchOptions.isPassiveMode(),
++currentSessionId,
currentSessionId,
network);
if (hadReply) {
requestTaskFuture = scheduleNextRunLocked(taskConfig);
@@ -208,6 +208,13 @@ public class MdnsServiceTypeClient {
}
}
@GuardedBy("lock")
private void cancelRequestTaskLocked() {
requestTaskFuture.cancel(true);
++currentSessionId;
requestTaskFuture = null;
}
private boolean responseMatchesOptions(@NonNull MdnsResponse response,
@NonNull MdnsSearchOptions options) {
final boolean matchesInstanceName = options.getResolveInstanceName() == null
@@ -241,8 +248,7 @@ public class MdnsServiceTypeClient {
return listeners.isEmpty();
}
if (listeners.isEmpty() && requestTaskFuture != null) {
requestTaskFuture.cancel(true);
requestTaskFuture = null;
cancelRequestTaskLocked();
}
return listeners.isEmpty();
}
@@ -319,8 +325,7 @@ public class MdnsServiceTypeClient {
}
if (requestTaskFuture != null) {
requestTaskFuture.cancel(true);
requestTaskFuture = null;
cancelRequestTaskLocked();
}
}
}

View File

@@ -379,9 +379,7 @@ public class MdnsServiceTypeClientTests {
}
@Test
@Ignore("MdnsConfigs is not configurable currently.")
public void testIfPreviousTaskIsCanceledWhenNewSessionStarts() {
//MdnsConfigsFlagsImpl.useSessionIdToScheduleMdnsTask.override(true);
MdnsSearchOptions searchOptions =
MdnsSearchOptions.newBuilder().addSubtype("12345").setIsPassiveMode(true).build();
client.startSendAndReceive(mockListenerOne, searchOptions);