NSD: Specify on what interface to getAddrInfo

When discover two different host with same host name
from different network interface, specify on what
 interface to getAddrInfo.

Bug: 203453164
Test: build & manual

Signed-off-by: hepengtao <hept.hept.hept@gmail.com>
Change-Id: Ifaccb7f3fac6b1dd789cc9ce7c8d964102754508
This commit is contained in:
hepengtao
2021-10-19 17:25:50 +08:00
committed by Remi NGUYEN VAN
parent 2ed5ef560c
commit f6f9aa2b9a

View File

@@ -488,7 +488,7 @@ public class NsdService extends INsdManager.Stub {
removeRequestMap(clientId, id, clientInfo); removeRequestMap(clientId, id, clientInfo);
int id2 = getUniqueId(); int id2 = getUniqueId();
if (getAddrInfo(id2, cooked[3])) { if (getAddrInfo(id2, cooked[3], cooked[7])) {
storeRequestMap(clientId, id2, clientInfo, NsdManager.RESOLVE_SERVICE); storeRequestMap(clientId, id2, clientInfo, NsdManager.RESOLVE_SERVICE);
} else { } else {
clientInfo.onResolveServiceFailed( clientInfo.onResolveServiceFailed(
@@ -833,8 +833,8 @@ public class NsdService extends INsdManager.Stub {
return mDaemon.execute("stop-resolve", resolveId); return mDaemon.execute("stop-resolve", resolveId);
} }
private boolean getAddrInfo(int resolveId, String hostname) { private boolean getAddrInfo(int resolveId, String hostname, String interfaceName) {
return mDaemon.execute("getaddrinfo", resolveId, hostname); return mDaemon.execute("getaddrinfo", resolveId, hostname, interfaceName);
} }
private boolean stopGetAddrInfo(int resolveId) { private boolean stopGetAddrInfo(int resolveId) {