Merge "Enable useSessionIdToScheduleMdnsTask" am: 01b988255f am: 914651bd33
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2619296 Change-Id: I7207be9696d3e32ca11af86a8967d6782ae39409 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -51,7 +51,7 @@ public class MdnsConfigs {
|
||||
}
|
||||
|
||||
public static boolean useSessionIdToScheduleMdnsTask() {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean shouldCancelScanTaskWhenFutureIsNull() {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user