From 839ff311de67da0d34f5b4f1cf283d34daea26c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Fri, 13 Oct 2023 16:44:23 +0800 Subject: [PATCH] Wifi (macOS): work around #581 --- CHANGELOG.md | 3 --- src/detection/wifi/wifi_apple.m | 12 ++++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a663a8f5..1867814d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,5 @@ # 2.1.1 -Changes: -* SSID detection no longer works in macOS Sonoma. It will be marked as `` before I find a solution (Wifi, macOS) - Features: * Support opkg (Packages, Linux) * Support GNOME Console terminal version and font detection (Terminal, Linux) diff --git a/src/detection/wifi/wifi_apple.m b/src/detection/wifi/wifi_apple.m index 57b23c485..68a86808b 100644 --- a/src/detection/wifi/wifi_apple.m +++ b/src/detection/wifi/wifi_apple.m @@ -1,4 +1,5 @@ #include "wifi.h" +#include "common/processing.h" #import @@ -33,6 +34,17 @@ const char* ffDetectWifi(FFlist* result) if (inf.ssid) ffStrbufAppendS(&item->conn.ssid, inf.ssid.UTF8String); + else if (!ffProcessAppendStdOut(&item->conn.ssid, (char* []) { + "/usr/sbin/networksetup", + "-getairportnetwork", + item->inf.description.chars, + NULL + }) && item->conn.ssid.length > 0) + { + uint32_t index = ffStrbufFirstIndexC(&item->conn.ssid, ':'); + if (index < item->conn.ssid.length) + ffStrbufSubstrAfter(&item->conn.ssid, index + 1); + } else ffStrbufSetStatic(&item->conn.ssid, ""); // https://developer.apple.com/forums/thread/732431