Register service on the specified network
Currently, NsdManager registers services on all interfaces when one network was specified in NsdServiceInfo. It's unexpected behavior. The service should be only advertised on specified network. Thus, correct the behavior on NsdService and add cts test to verify it. Bug: 220070737 Test: atest CtsNetTestCases:android.net.cts.NsdManagerTest Change-Id: Ief3bfa110bfa340c53edec561eb5376f6bd305e6
This commit is contained in:
@@ -738,7 +738,13 @@ public class NsdService extends INsdManager.Stub {
|
||||
String type = service.getServiceType();
|
||||
int port = service.getPort();
|
||||
byte[] textRecord = service.getTxtRecord();
|
||||
return mMDnsManager.registerService(regId, name, type, port, textRecord, IFACE_IDX_ANY);
|
||||
final Network network = service.getNetwork();
|
||||
final int registerInterface = getNetworkInterfaceIndex(network);
|
||||
if (network != null && registerInterface == IFACE_IDX_ANY) {
|
||||
Log.e(TAG, "Interface to register service on not found");
|
||||
return false;
|
||||
}
|
||||
return mMDnsManager.registerService(regId, name, type, port, textRecord, registerInterface);
|
||||
}
|
||||
|
||||
private boolean unregisterService(int regId) {
|
||||
|
||||
Reference in New Issue
Block a user