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,
|
private void handleOnResponseReceived(@NonNull MdnsPacket packet, int interfaceIndex,
|
||||||
@Nullable Network network) {
|
@Nullable Network network) {
|
||||||
for (MdnsServiceTypeClient serviceTypeClient
|
for (MdnsServiceTypeClient serviceTypeClient
|
||||||
: perNetworkServiceTypeClients.getByNetwork(network)) {
|
: getMdnsServiceTypeClient(network)) {
|
||||||
serviceTypeClient.processResponse(packet, interfaceIndex, 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
|
@Override
|
||||||
public void onFailedToParseMdnsResponse(int receivedPacketNumber, int errorCode,
|
public void onFailedToParseMdnsResponse(int receivedPacketNumber, int errorCode,
|
||||||
@Nullable Network network) {
|
@Nullable Network network) {
|
||||||
@@ -266,7 +274,7 @@ public class MdnsDiscoveryManager implements MdnsSocketClientBase.Callback {
|
|||||||
private void handleOnFailedToParseMdnsResponse(int receivedPacketNumber, int errorCode,
|
private void handleOnFailedToParseMdnsResponse(int receivedPacketNumber, int errorCode,
|
||||||
@Nullable Network network) {
|
@Nullable Network network) {
|
||||||
for (MdnsServiceTypeClient serviceTypeClient
|
for (MdnsServiceTypeClient serviceTypeClient
|
||||||
: perNetworkServiceTypeClients.getByNetwork(network)) {
|
: getMdnsServiceTypeClient(network)) {
|
||||||
serviceTypeClient.onFailedToParseMdnsResponse(receivedPacketNumber, errorCode);
|
serviceTypeClient.onFailedToParseMdnsResponse(receivedPacketNumber, errorCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -210,6 +210,11 @@ public class MdnsMultinetworkSocketClient implements MdnsSocketClientBase {
|
|||||||
return mHandler.getLooper();
|
return mHandler.getLooper();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsRequestingSpecificNetworks() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private void sendMdnsPacket(@NonNull DatagramPacket packet, @Nullable Network targetNetwork) {
|
private void sendMdnsPacket(@NonNull DatagramPacket packet, @Nullable Network targetNetwork) {
|
||||||
final boolean isIpv6 = ((InetSocketAddress) packet.getSocketAddress()).getAddress()
|
final boolean isIpv6 = ((InetSocketAddress) packet.getSocketAddress()).getAddress()
|
||||||
instanceof Inet6Address;
|
instanceof Inet6Address;
|
||||||
|
|||||||
@@ -238,6 +238,11 @@ public class MdnsSocketClient implements MdnsSocketClientBase {
|
|||||||
socketCreationCallback.onSocketCreated(null);
|
socketCreationCallback.onSocketCreated(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsRequestingSpecificNetworks() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private void sendMdnsPacket(DatagramPacket packet, Queue<DatagramPacket> packetQueueToUse) {
|
private void sendMdnsPacket(DatagramPacket packet, Queue<DatagramPacket> packetQueueToUse) {
|
||||||
if (shouldStopSocketLoop && !MdnsConfigs.allowAddMdnsPacketAfterDiscoveryStops()) {
|
if (shouldStopSocketLoop && !MdnsConfigs.allowAddMdnsPacketAfterDiscoveryStops()) {
|
||||||
LOGGER.w("sendMdnsPacket() is called after discovery already stopped");
|
LOGGER.w("sendMdnsPacket() is called after discovery already stopped");
|
||||||
|
|||||||
@@ -67,6 +67,9 @@ public interface MdnsSocketClientBase {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Returns whether the socket client support requesting per network */
|
||||||
|
boolean supportsRequestingSpecificNetworks();
|
||||||
|
|
||||||
/*** Callback for mdns response */
|
/*** Callback for mdns response */
|
||||||
interface Callback {
|
interface Callback {
|
||||||
/*** Receive a mdns response */
|
/*** Receive a mdns response */
|
||||||
|
|||||||
@@ -99,6 +99,7 @@ public class MdnsDiscoveryManagerTests {
|
|||||||
thread.start();
|
thread.start();
|
||||||
handler = new Handler(thread.getLooper());
|
handler = new Handler(thread.getLooper());
|
||||||
doReturn(thread.getLooper()).when(socketClient).getLooper();
|
doReturn(thread.getLooper()).when(socketClient).getLooper();
|
||||||
|
doReturn(true).when(socketClient).supportsRequestingSpecificNetworks();
|
||||||
discoveryManager = new MdnsDiscoveryManager(executorProvider, socketClient,
|
discoveryManager = new MdnsDiscoveryManager(executorProvider, socketClient,
|
||||||
sharedLog) {
|
sharedLog) {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user