Add reg key to disable mDNS advertising.

PiperOrigin-RevId: 852976950
This commit is contained in:
Francis Tsui
2026-01-06 16:18:04 -08:00
committed by Copybara-Service
parent d302e8459d
commit bf6ed702db
2 changed files with 14 additions and 0 deletions
@@ -327,6 +327,7 @@ cc_library(
deps = [
":crypto", # build_cleaner: keep
":network_info",
":registry",
":scoped_wlan_memory",
":socket_address",
":string_utils",
@@ -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<winrt::hstring, IInspectable> 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())) {