prometheus-node-exporter-lua: fix bss identifier in hostapd_stations
We previously did not identify the correct BSS from the output of `hostapd_cli -i <phy> status`, because when asked for a vif it will always respond with information relevant to the whole phy. The per vif settings will use an iterator and we now try to detect the correct BSS from that output. Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de>
This commit is contained in:
parent
1614cdde0a
commit
2849ec248d
2 changed files with 14 additions and 8 deletions
|
@ -4,7 +4,7 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=prometheus-node-exporter-lua
|
||||
PKG_VERSION:=2021.07.04
|
||||
PKG_VERSION:=2021.07.24
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
|
||||
|
|
|
@ -16,23 +16,29 @@ local function get_wifi_interface_labels()
|
|||
handle:close()
|
||||
|
||||
local hostapd = {}
|
||||
local bss_idx = -1
|
||||
for line in hostapd_status:gmatch("[^\r\n]+") do
|
||||
local name, value = string.match(line, "(.+)=(.+)")
|
||||
if name == "phy" then
|
||||
hostapd["vif"] = value
|
||||
elseif name == "freq" then
|
||||
hostapd["freq"] = value
|
||||
elseif name == "channel" then
|
||||
hostapd["channel"] = value
|
||||
elseif name == "bssid[0]" then
|
||||
hostapd["bssid"] = value
|
||||
elseif name == "ssid[0]" then
|
||||
hostapd["ssid"] = value
|
||||
-- hostapd gives us all bss on the relevant phy, find the one we're interested in
|
||||
elseif string.match(name, "bss%[%d%]") then
|
||||
if value == cfg['ifname'] then
|
||||
bss_idx = tonumber(string.match(name, "bss%[(%d)%]"))
|
||||
end
|
||||
elseif bss_idx >= 0 then
|
||||
if name == "bssid[" .. bss_idx .. "]" then
|
||||
hostapd["bssid"] = value
|
||||
elseif name == "ssid[" .. bss_idx .. "]" then
|
||||
hostapd["ssid"] = value
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local labels = {
|
||||
vif = hostapd['vif'],
|
||||
vif = cfg['ifname'],
|
||||
ssid = hostapd['ssid'],
|
||||
bssid = hostapd['bssid'],
|
||||
encryption = cfg['encryption'], -- In a mixed scenario it would be good to know if A or B was used
|
||||
|
|
Loading…
Reference in a new issue