From e319be19de032a4e4fcb0c264e5b8ee3fe117fe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Wed, 11 Oct 2023 14:48:07 +0800 Subject: [PATCH] Wifi (macOS): print `` when we can't get SSID SSID is not available after Sonoma. According to the doc: SSID information is not available unless Location Services is enabled and the user has authorized the calling app to use location services. --- src/detection/wifi/wifi_apple.m | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/detection/wifi/wifi_apple.m b/src/detection/wifi/wifi_apple.m index 775856eec..d76f98848 100644 --- a/src/detection/wifi/wifi_apple.m +++ b/src/detection/wifi/wifi_apple.m @@ -1,6 +1,7 @@ #include "wifi.h" #import +#import const char* ffDetectWifi(FFlist* result) { @@ -31,7 +32,12 @@ const char* ffDetectWifi(FFlist* result) if(!inf.serviceActive) continue; - ffStrbufAppendS(&item->conn.ssid, inf.ssid.UTF8String); + [CLLocationManager.new requestAlwaysAuthorization]; + if (inf.ssid) + ffStrbufAppendS(&item->conn.ssid, inf.ssid.UTF8String); + else + ffStrbufSetStatic(&item->conn.ssid, ""); // https://developer.apple.com/forums/thread/732431 + ffStrbufAppendS(&item->conn.macAddress, inf.hardwareAddress.UTF8String); switch(inf.activePHYMode) { @@ -116,6 +122,9 @@ const char* ffDetectWifi(FFlist* result) case 15 /*kCWSecurityOWETransition*/: ffStrbufAppendS(&item->conn.security, "OWE Transition"); break; + case kCWSecurityUnknown: + // Ignore + break; default: ffStrbufAppendF(&item->conn.security, "Unknown (%ld)", inf.security); break;