diff --git a/service-t/src/com/android/server/connectivity/mdns/MdnsSocketProvider.java b/service-t/src/com/android/server/connectivity/mdns/MdnsSocketProvider.java index d91bd112b3..49e4e28d32 100644 --- a/service-t/src/com/android/server/connectivity/mdns/MdnsSocketProvider.java +++ b/service-t/src/com/android/server/connectivity/mdns/MdnsSocketProvider.java @@ -17,6 +17,7 @@ package com.android.server.connectivity.mdns; import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; +import static android.net.NetworkCapabilities.TRANSPORT_THREAD; import static android.net.NetworkCapabilities.TRANSPORT_VPN; import static android.net.NetworkCapabilities.TRANSPORT_WIFI; @@ -561,8 +562,9 @@ public class MdnsSocketProvider { private boolean isMdnsCapableInterface( @NonNull NetworkInterfaceWrapper iface, @NonNull int[] transports) { try { - // Never try mDNS on cellular, or on interfaces with incompatible flags + // Never try mDNS on cellular, on Thread, or on interfaces with incompatible flags if (CollectionUtils.contains(transports, TRANSPORT_CELLULAR) + || CollectionUtils.contains(transports, TRANSPORT_THREAD) || iface.isLoopback() || iface.isVirtual() || !iface.isUp()) { diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketProviderTest.java b/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketProviderTest.java index f763bae09a..6bcc4ed442 100644 --- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketProviderTest.java +++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketProviderTest.java @@ -18,6 +18,7 @@ package com.android.server.connectivity.mdns; import static android.net.NetworkCapabilities.TRANSPORT_BLUETOOTH; import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; +import static android.net.NetworkCapabilities.TRANSPORT_THREAD; import static android.net.NetworkCapabilities.TRANSPORT_VPN; import static android.net.NetworkCapabilities.TRANSPORT_WIFI; @@ -596,6 +597,17 @@ public class MdnsSocketProviderTest { testCallback.expectedNoCallback(); } + @Test + public void testNoSocketCreatedForThread() { + startMonitoringSockets(); + + final TestSocketCallback testCallback = new TestSocketCallback(); + runOnHandler(() -> mSocketProvider.requestSocket(TEST_NETWORK, testCallback)); + + postNetworkAvailable(TRANSPORT_THREAD); + testCallback.expectedNoCallback(); + } + @Test public void testNoSocketCreatedForNonMulticastInterface() throws Exception { doReturn(false).when(mTestNetworkIfaceWrapper).supportsMulticast();