From bf6ed702db60eff477d7612e46434c3a05ccf2e1 Mon Sep 17 00:00:00 2001 From: Francis Tsui Date: Tue, 6 Jan 2026 16:16:25 -0800 Subject: [PATCH] Add reg key to disable mDNS advertising. PiperOrigin-RevId: 852976950 --- internal/platform/implementation/windows/BUILD | 1 + .../implementation/windows/wifi_lan_medium.cc | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/internal/platform/implementation/windows/BUILD b/internal/platform/implementation/windows/BUILD index c81a505d..2079db10 100644 --- a/internal/platform/implementation/windows/BUILD +++ b/internal/platform/implementation/windows/BUILD @@ -327,6 +327,7 @@ cc_library( deps = [ ":crypto", # build_cleaner: keep ":network_info", + ":registry", ":scoped_wlan_memory", ":socket_address", ":string_utils", diff --git a/internal/platform/implementation/windows/wifi_lan_medium.cc b/internal/platform/implementation/windows/wifi_lan_medium.cc index 37361804..2b078349 100644 --- a/internal/platform/implementation/windows/wifi_lan_medium.cc +++ b/internal/platform/implementation/windows/wifi_lan_medium.cc @@ -48,6 +48,7 @@ #include "internal/platform/implementation/windows/generated/winrt/Windows.Networking.Connectivity.h" #include "internal/platform/implementation/windows/nearby_client_socket.h" #include "internal/platform/implementation/windows/network_info.h" +#include "internal/platform/implementation/windows/registry.h" #include "internal/platform/implementation/windows/socket_address.h" #include "internal/platform/implementation/windows/string_utils.h" #include "internal/platform/implementation/windows/utils.h" @@ -56,6 +57,7 @@ namespace nearby::windows { namespace { +using ::nearby::platform::windows::Registry; using ::winrt::fire_and_forget; using ::winrt::Windows::Devices::Enumeration::DeviceInformation; using ::winrt::Windows::Devices::Enumeration::DeviceInformationKind; @@ -75,6 +77,9 @@ constexpr absl::string_view kMdnsDeviceSelectorFormat = "AND System.Devices.Dnssd.ServiceName:=\"%s\" AND " "System.Devices.Dnssd.Domain:=\"local\""; +constexpr absl::string_view kDisableMdnsAdvertisingRegistryValue = + "disable_mdns_advertising"; + constexpr absl::Duration kConnectTimeout = absl::Milliseconds(500); bool IsSelfInstance(IMapView properties, @@ -191,6 +196,14 @@ bool WifiLanMedium::StartAdvertising(const NsdServiceInfo& nsd_service_info) { return false; } service_name_ = nsd_service_info.GetServiceName(); + if (Registry::ReadDword(Registry::Hive::kCurrentUser, + Registry::Key::kNearbyShareFlags, + std::string(kDisableMdnsAdvertisingRegistryValue)) + .value_or(0) != 0) { + LOG(INFO) << "MDNS advertising is disabled by registry."; + medium_status_ |= kMediumStatusAdvertising; + return true; + } if (wifi_lan_mdns_.StartMdnsService( service_name_, nsd_service_info.GetServiceType(), nsd_service_info.GetPort(), nsd_service_info.GetTxtRecords())) {