From ac2266c72fe54c0958d41758ff2f99ab72b39c7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Tue, 17 Dec 2024 20:24:20 +0800 Subject: [PATCH] Wifi (FreeBSD): early break if the interface is not associated --- src/detection/wifi/wifi_bsd.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/detection/wifi/wifi_bsd.c b/src/detection/wifi/wifi_bsd.c index fafc8f1c9..e070b1e50 100644 --- a/src/detection/wifi/wifi_bsd.c +++ b/src/detection/wifi/wifi_bsd.c @@ -37,9 +37,14 @@ const char* ffDetectWifi(FFlist* result) item->conn.channel = 0; item->conn.frequency = 0; + ffParsePropLines(ifconfig.chars, "status: ", &item->conn.status); + if (!ffStrbufEqualS(&item->conn.status, "associated")) + continue; + ffParsePropLines(ifconfig.chars, "ssid ", &item->conn.ssid); if (item->conn.ssid.length) { + // This doesn't work for quoted SSID values uint32_t idx = ffStrbufFirstIndexS(&item->conn.ssid, " bssid "); if (idx < item->conn.ssid.length) { @@ -69,8 +74,6 @@ const char* ffDetectWifi(FFlist* result) ffStrbufPrependS(&item->conn.protocol, "802."); } } - - ffParsePropLines(ifconfig.chars, "status: ", &item->conn.status); } }