Do not return found services on dummy0

When registering and advertising a service on the same device, it is
possible for NsdService to find the service on the dummy0 interface. It
is however unusable and not resolveable.

Skip callbacks on the dummy0 interface as they would confuse apps and
tests.

Bug: 266176036
Test: atest NsdServiceTest
Change-Id: I98cca0135e0f6936187d45707cbdad7a7f263ff1
This commit is contained in:
Remi NGUYEN VAN
2023-01-23 19:14:57 +09:00
parent 9ba6190f9b
commit 643edb6715
2 changed files with 35 additions and 0 deletions

View File

@@ -843,6 +843,12 @@ public class NsdService extends INsdManager.Stub {
// interfaces that do not have an associated Network.
break;
}
if (foundNetId == INetd.DUMMY_NET_ID) {
// Ignore services on the dummy0 interface: they are only seen when
// discovering locally advertised services, and are not reachable
// through that interface.
break;
}
setServiceNetworkForCallback(servInfo, info.netId, info.interfaceIdx);
clientInfo.onServiceFound(clientId, servInfo);
break;