Merge "Matches all MdnsServiceTypeClient if using MdnsSocketClient" am: c2baf9403a am: bd3e3ec1b7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2606592 Change-Id: I85cf532d83174f2bc23b5bae293afe546574f384 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -251,11 +251,19 @@ public class MdnsDiscoveryManager implements MdnsSocketClientBase.Callback {
|
||||
private void handleOnResponseReceived(@NonNull MdnsPacket packet, int interfaceIndex,
|
||||
@Nullable Network network) {
|
||||
for (MdnsServiceTypeClient serviceTypeClient
|
||||
: perNetworkServiceTypeClients.getByNetwork(network)) {
|
||||
: getMdnsServiceTypeClient(network)) {
|
||||
serviceTypeClient.processResponse(packet, interfaceIndex, network);
|
||||
}
|
||||
}
|
||||
|
||||
private List<MdnsServiceTypeClient> getMdnsServiceTypeClient(@Nullable Network network) {
|
||||
if (socketClient.supportsRequestingSpecificNetworks()) {
|
||||
return perNetworkServiceTypeClients.getByNetwork(network);
|
||||
} else {
|
||||
return perNetworkServiceTypeClients.getByNetwork(null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailedToParseMdnsResponse(int receivedPacketNumber, int errorCode,
|
||||
@Nullable Network network) {
|
||||
@@ -266,7 +274,7 @@ public class MdnsDiscoveryManager implements MdnsSocketClientBase.Callback {
|
||||
private void handleOnFailedToParseMdnsResponse(int receivedPacketNumber, int errorCode,
|
||||
@Nullable Network network) {
|
||||
for (MdnsServiceTypeClient serviceTypeClient
|
||||
: perNetworkServiceTypeClients.getByNetwork(network)) {
|
||||
: getMdnsServiceTypeClient(network)) {
|
||||
serviceTypeClient.onFailedToParseMdnsResponse(receivedPacketNumber, errorCode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -210,6 +210,11 @@ public class MdnsMultinetworkSocketClient implements MdnsSocketClientBase {
|
||||
return mHandler.getLooper();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsRequestingSpecificNetworks() {
|
||||
return true;
|
||||
}
|
||||
|
||||
private void sendMdnsPacket(@NonNull DatagramPacket packet, @Nullable Network targetNetwork) {
|
||||
final boolean isIpv6 = ((InetSocketAddress) packet.getSocketAddress()).getAddress()
|
||||
instanceof Inet6Address;
|
||||
|
||||
@@ -238,6 +238,11 @@ public class MdnsSocketClient implements MdnsSocketClientBase {
|
||||
socketCreationCallback.onSocketCreated(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsRequestingSpecificNetworks() {
|
||||
return false;
|
||||
}
|
||||
|
||||
private void sendMdnsPacket(DatagramPacket packet, Queue<DatagramPacket> packetQueueToUse) {
|
||||
if (shouldStopSocketLoop && !MdnsConfigs.allowAddMdnsPacketAfterDiscoveryStops()) {
|
||||
LOGGER.w("sendMdnsPacket() is called after discovery already stopped");
|
||||
|
||||
@@ -67,6 +67,9 @@ public interface MdnsSocketClientBase {
|
||||
return null;
|
||||
}
|
||||
|
||||
/** Returns whether the socket client support requesting per network */
|
||||
boolean supportsRequestingSpecificNetworks();
|
||||
|
||||
/*** Callback for mdns response */
|
||||
interface Callback {
|
||||
/*** Receive a mdns response */
|
||||
|
||||
@@ -99,6 +99,7 @@ public class MdnsDiscoveryManagerTests {
|
||||
thread.start();
|
||||
handler = new Handler(thread.getLooper());
|
||||
doReturn(thread.getLooper()).when(socketClient).getLooper();
|
||||
doReturn(true).when(socketClient).supportsRequestingSpecificNetworks();
|
||||
discoveryManager = new MdnsDiscoveryManager(executorProvider, socketClient,
|
||||
sharedLog) {
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user