Enable mDNS on Darwin am: 304150a521 am: bd2c93fab0
am: 31a2258afe
Change-Id: I392af0dabe9268ed1a5cb93c0ad9ec47a188dd2e
diff --git a/adb/Android.mk b/adb/Android.mk
index e4b3703..fe5b2d9 100644
--- a/adb/Android.mk
+++ b/adb/Android.mk
@@ -150,7 +150,7 @@
LOCAL_SRC_FILES_windows := $(LIBADB_windows_SRC_FILES)
LOCAL_SRC_FILES_linux += transport_mdns.cpp
-LOCAL_SRC_FILES_darwin += transport_mdns_unsupported.cpp
+LOCAL_SRC_FILES_darwin += transport_mdns.cpp
LOCAL_SRC_FILES_windows += transport_mdns_unsupported.cpp
LOCAL_SANITIZE := $(adb_host_sanitize)
diff --git a/adb/transport_mdns.cpp b/adb/transport_mdns.cpp
index b63fc83..3848452 100644
--- a/adb/transport_mdns.cpp
+++ b/adb/transport_mdns.cpp
@@ -85,10 +85,17 @@
const char* hosttarget, uint16_t port) :
name_(name),
port_(port) {
+
+ /* TODO: We should be able to get IPv6 support by adding
+ * kDNSServiceProtocol_IPv6 to the flags below. However, when we do
+ * this, we get served link-local addresses that are usually useless to
+ * connect to. What's more, we seem to /only/ get those and nothing else.
+ * If we want IPv6 in the future we'll have to figure out why.
+ */
DNSServiceErrorType ret =
DNSServiceGetAddrInfo(
&sdRef_, 0, interfaceIndex,
- kDNSServiceProtocol_IPv6|kDNSServiceProtocol_IPv4, hosttarget,
+ kDNSServiceProtocol_IPv4, hosttarget,
register_service_ip, reinterpret_cast<void*>(this));
if (ret != kDNSServiceErr_NoError) {