From 6465d9ab589d3fd14fbaad61b3906a59b276cfb3 Mon Sep 17 00:00:00 2001 From: Serhiy Mytrovtsiy Date: Fri, 3 Oct 2025 17:50:51 +0200 Subject: [PATCH] feat: added a new way to obtain the WiFi network SSID (thanks to @fjh658) --- Modules/Net/readers.swift | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Modules/Net/readers.swift b/Modules/Net/readers.swift index 41ab63cd..47e7dabc 100644 --- a/Modules/Net/readers.swift +++ b/Modules/Net/readers.swift @@ -332,6 +332,10 @@ internal class UsageReader: Reader, CWEventDelegate { guard self.usage.interface != nil else { return } + if self.usage.wifiDetails.ssid != nil && (self.usage.wifiDetails.ssid == "" || self.usage.wifiDetails.ssid == "") { + self.usage.wifiDetails.ssid = nil + } + if self.usage.connectionType == .wifi && self.usage.wifiDetails.ssid == nil || self.usage.wifiDetails.ssid == "" { self.getWiFiDetails() } @@ -341,6 +345,11 @@ internal class UsageReader: Reader, CWEventDelegate { if let interface = CWWiFiClient.shared().interface(withName: self.interfaceID) { if let ssid = interface.ssid() { self.usage.wifiDetails.ssid = ssid + } else if let cfg = interface.configuration(), + let set = (cfg.value(forKey: "networkProfiles") as? NSOrderedSet), + let first = set.firstObject as? CWNetworkProfile, + let raw = first.ssid, !raw.isEmpty { + self.usage.wifiDetails.ssid = raw.replacingOccurrences(of: "’", with: "'").replacingOccurrences(of: "‘", with: "'").trimmingCharacters(in: .whitespacesAndNewlines) } if let bssid = interface.bssid() { self.usage.wifiDetails.bssid = bssid