Skip to content

Commit 55352be

Browse files
committed
Wifi (FreeBSD): support channel & frequency detection
1 parent c0be263 commit 55352be

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/detection/wifi/wifi_bsd.c

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,21 @@ const char* ffDetectWifi(FFlist* result)
4040
ffParsePropLines(ifconfig.chars, "ssid ", &item->conn.ssid);
4141
if (item->conn.ssid.length)
4242
{
43-
uint32_t ibssid = ffStrbufFirstIndexS(&item->conn.ssid, " bssid ");
44-
if (ibssid < item->conn.ssid.length)
43+
uint32_t idx = ffStrbufFirstIndexS(&item->conn.ssid, " bssid ");
44+
if (idx < item->conn.ssid.length)
4545
{
46-
ibssid += (uint32_t) strlen(" bssid ");
47-
ffStrbufSetS(&item->conn.bssid, item->conn.ssid.chars + ibssid);
46+
ffStrbufSetS(&item->conn.bssid, item->conn.ssid.chars + idx + (uint32_t) strlen(" bssid "));
47+
ffStrbufSubstrBefore(&item->conn.ssid, idx);
4848
}
4949

50-
ffStrbufSubstrBeforeFirstC(&item->conn.ssid, ' ');
50+
idx = ffStrbufFirstIndexS(&item->conn.ssid, " channel ");
51+
if (idx < item->conn.ssid.length)
52+
{
53+
const char* pchannel = item->conn.ssid.chars + idx + strlen(" channel ");
54+
sscanf(pchannel, "%hu (%hu MHz %*s)", &item->conn.channel, &item->conn.frequency);
55+
}
56+
57+
ffStrbufSubstrBefore(&item->conn.ssid, idx);
5158
}
5259

5360
ffParsePropLines(ifconfig.chars, "media: ", &item->conn.protocol);

0 commit comments

Comments
 (0)