diff --git a/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua b/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua index e8b7550be6df02329c3c492c0f0a5eea89a1600e..4b96328362f8bb96ebba131c9ee83e1c9f5e9c34 100644 --- a/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua +++ b/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua @@ -212,14 +212,21 @@ end local function get_wlan_mac_from_driver(uci, radio, vif) local primary = sysconfig.primary_mac:lower() - local i = 1 - for addr in get_addresses(uci, radio) do - if addr:lower() ~= primary then - if i == vif then - return addr - end + local addresses = {} + for address in get_addresses(uci, radio) do + if address:lower() ~= primary then + table.insert(addresses, address) + end + end - i = i + 1 + -- Make sure we have at least 4 addresses + if #addresses < 4 then + return nil + end + + for i, addr in ipairs(addresses) do + if i == vif then + return addr end end end