From e3af4d493b5ccb110a14e6d9217cefcaa95ddb9f Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Mon, 28 Oct 2024 09:55:16 +0900 Subject: [PATCH] Remove the transactionId field The transactionId is just a query counter similar to queryIndex, except that it wraps at UNSIGNED_SHORT_MAX_VALUE. Calculate it based on queryIndex instead. Test: atest Change-Id: I3d18f398f3ca3aac363daacbc2840349baba9125 --- .../mdns/MdnsServiceTypeClient.java | 2 +- .../connectivity/mdns/QueryTaskConfig.java | 16 ++++++--------- .../mdns/MdnsServiceTypeClientTests.java | 20 +++++++++---------- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/service-t/src/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java b/service-t/src/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java index 7a93fecec1..2fb4fafb89 100644 --- a/service-t/src/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java +++ b/service-t/src/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java @@ -769,7 +769,7 @@ public class MdnsServiceTypeClient { serviceType, subtypes, taskArgs.config.expectUnicastResponse, - taskArgs.config.transactionId, + taskArgs.config.getTransactionId(), socketKey, onlyUseIpv6OnIpv6OnlyNetworks, sendDiscoveryQueries, diff --git a/service-t/src/com/android/server/connectivity/mdns/QueryTaskConfig.java b/service-t/src/com/android/server/connectivity/mdns/QueryTaskConfig.java index d193e141cd..2ac5b747bf 100644 --- a/service-t/src/com/android/server/connectivity/mdns/QueryTaskConfig.java +++ b/service-t/src/com/android/server/connectivity/mdns/QueryTaskConfig.java @@ -29,21 +29,18 @@ public class QueryTaskConfig { private final boolean alwaysAskForUnicastResponse = MdnsConfigs.alwaysAskForUnicastResponseInEachBurst(); @VisibleForTesting - final int transactionId; - @VisibleForTesting final boolean expectUnicastResponse; final int queryIndex; final int queryMode; - QueryTaskConfig(int queryMode, int queryIndex, int transactionId) { + QueryTaskConfig(int queryMode, int queryIndex) { this.queryMode = queryMode; - this.transactionId = transactionId; this.queryIndex = queryIndex; this.expectUnicastResponse = getExpectUnicastResponse(); } QueryTaskConfig(int queryMode) { - this(queryMode, 0, 1); + this(queryMode, 0); } /** @@ -51,12 +48,11 @@ public class QueryTaskConfig { */ public QueryTaskConfig getConfigForNextRun(int queryMode) { final int newQueryIndex = queryIndex + 1; - int newTransactionId = transactionId + 1; - if (newTransactionId > UNSIGNED_SHORT_MAX_VALUE) { - newTransactionId = 1; - } + return new QueryTaskConfig(queryMode, newQueryIndex); + } - return new QueryTaskConfig(queryMode, newQueryIndex, newTransactionId); + public int getTransactionId() { + return (queryIndex % (UNSIGNED_SHORT_MAX_VALUE - 1)) + 1; } private boolean getExpectUnicastResponse() { diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java b/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java index b8a9707ea9..3f2607cc5d 100644 --- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java +++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java @@ -581,21 +581,21 @@ public class MdnsServiceTypeClientTests { // This is the first query. We will ask for unicast response. assertTrue(config.expectUnicastResponse); - assertEquals(config.transactionId, 1); + assertEquals(config.getTransactionId(), 1); // For the rest of queries in this burst, we will NOT ask for unicast response. for (int i = 1; i < MdnsConfigs.queriesPerBurst(); i++) { - int oldTransactionId = config.transactionId; + int oldTransactionId = config.getTransactionId(); config = config.getConfigForNextRun(ACTIVE_QUERY_MODE); assertFalse(config.expectUnicastResponse); - assertEquals(config.transactionId, oldTransactionId + 1); + assertEquals(config.getTransactionId(), oldTransactionId + 1); } // This is the first query of a new burst. We will ask for unicast response. - int oldTransactionId = config.transactionId; + int oldTransactionId = config.getTransactionId(); config = config.getConfigForNextRun(ACTIVE_QUERY_MODE); assertTrue(config.expectUnicastResponse); - assertEquals(config.transactionId, oldTransactionId + 1); + assertEquals(config.getTransactionId(), oldTransactionId + 1); } @Test @@ -606,21 +606,21 @@ public class MdnsServiceTypeClientTests { // This is the first query. We will ask for unicast response. assertTrue(config.expectUnicastResponse); - assertEquals(config.transactionId, 1); + assertEquals(config.getTransactionId(), 1); // For the rest of queries in this burst, we will NOT ask for unicast response. for (int i = 1; i < MdnsConfigs.queriesPerBurst(); i++) { - int oldTransactionId = config.transactionId; + int oldTransactionId = config.getTransactionId(); config = config.getConfigForNextRun(ACTIVE_QUERY_MODE); assertFalse(config.expectUnicastResponse); - assertEquals(config.transactionId, oldTransactionId + 1); + assertEquals(config.getTransactionId(), oldTransactionId + 1); } // This is the first query of a new burst. We will NOT ask for unicast response. - int oldTransactionId = config.transactionId; + int oldTransactionId = config.getTransactionId(); config = config.getConfigForNextRun(ACTIVE_QUERY_MODE); assertFalse(config.expectUnicastResponse); - assertEquals(config.transactionId, oldTransactionId + 1); + assertEquals(config.getTransactionId(), oldTransactionId + 1); } @Test