Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 304150a5 authored by Casey Dahlin's avatar Casey Dahlin
Browse files

Enable mDNS on Darwin

We have to disable IPv6 to get this going, but nobody was yet using
IPv6, so that should be fine for now.

Test: Verified mDNS discovery on a MacBook
Bug: 31042497
(cherry picked from 9ae65de087171072f3890a81b074ae27db319508)

Change-Id: I628f0a1e9c4784db42fa56f5faf2904b6e1cf548
parent d6c8091e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -151,7 +151,7 @@ LOCAL_SRC_FILES_linux := $(LIBADB_linux_SRC_FILES)
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)
+8 −1
Original line number Diff line number Diff line
@@ -85,10 +85,17 @@ class ResolvedService : public AsyncServiceRef {
                    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) {