Use resolveInstanceName in NsdService

For resolve requests, specify the resolveInstanceName in
MdnsSearchOptions.

This will cause discovery to send followup queries when TXT/SRV/A/AAAA
records are missing; for example if only a PTR record is returned
following the discovery probes, or if no discovery probe is sent at all.

Test: atest NsdServiceTest
Bug: 267570781
Change-Id: Ib18c3afbd1533ada7a78dd8ccac993adb439d014
This commit is contained in:
Remi NGUYEN VAN
2023-02-27 12:18:27 +09:00
parent 42b1042f36
commit bb62b1de50
2 changed files with 5 additions and 2 deletions

View File

@@ -763,6 +763,7 @@ public class NsdService extends INsdManager.Stub {
final MdnsSearchOptions options = MdnsSearchOptions.newBuilder()
.setNetwork(info.getNetwork())
.setIsPassiveMode(true)
.setResolveInstanceName(info.getServiceName())
.build();
mMdnsDiscoveryManager.registerListener(
resolveServiceType, listener, options);
@@ -775,7 +776,7 @@ public class NsdService extends INsdManager.Stub {
}
maybeStartDaemon();
if (resolveService(id, args.serviceInfo)) {
if (resolveService(id, info)) {
clientInfo.mResolvedService = new NsdServiceInfo();
storeLegacyRequestMap(clientId, id, clientInfo, msg.what);
} else {