From c2b1ceb192f9fe44b2fc6217602857fe4f93f1dd Mon Sep 17 00:00:00 2001 From: Guogang Li Date: Tue, 30 Sep 2025 16:16:12 -0700 Subject: [PATCH] Check Wi-Fi access before enumerating interfaces. PiperOrigin-RevId: 813470707 --- .../platform/implementation/windows/wifi_medium.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/internal/platform/implementation/windows/wifi_medium.cc b/internal/platform/implementation/windows/wifi_medium.cc index 5e78519b..ad4b8102 100644 --- a/internal/platform/implementation/windows/wifi_medium.cc +++ b/internal/platform/implementation/windows/wifi_medium.cc @@ -16,18 +16,21 @@ #include #include -// #include #include "absl/strings/str_format.h" #include "internal/platform/implementation/wifi.h" #include "internal/platform/implementation/wifi_utils.h" #include "internal/platform/implementation/windows/utils.h" #include "internal/platform/implementation/windows/wifi.h" #include "internal/platform/logging.h" +#include "winrt/Windows.Devices.WiFi.h" namespace nearby { namespace windows { namespace { +using winrt::Windows::Devices::WiFi::WiFiAccessStatus; +using winrt::Windows::Devices::WiFi::WiFiAdapter; + constexpr int kMacAddrLen = 6; constexpr int kDefaultApFreq = -1; constexpr int kUseEthernet = -2; @@ -129,6 +132,13 @@ api::WifiInformation& WifiMedium::GetInformation() { wifi_information_.ip_address_dot_decimal.clear(); wifi_information_.ip_address_4_bytes.clear(); + WiFiAccessStatus accessStatus = WiFiAdapter::RequestAccessAsync().get(); + if (accessStatus != WiFiAccessStatus::Allowed) { + LOG(WARNING) << "Wi-Fi access is not granted"; + FillupEthernetParams(); + return wifi_information_; + } + p_intf_list = EnumInterface(&client_handle); if (!client_handle) { LOG(INFO) << "Client Handle is nullptr";