46 lines
1.8 KiB
Lua
Executable File
46 lines
1.8 KiB
Lua
Executable File
local Json = require("json")
|
|
|
|
local XQFunction = require("xiaoqiang.common.XQFunction")
|
|
|
|
local sleep = arg[1]
|
|
local payload = arg[2]
|
|
|
|
if payload then
|
|
if sleep and tonumber(sleep) and tonumber(sleep) > 0 then
|
|
os.execute("sleep "..tostring(sleep))
|
|
end
|
|
local suc, info = pcall(Json.decode, payload)
|
|
if suc and info and type(info) == "table" then
|
|
local macstr = XQFunction._cmdformat(table.concat(info.maclist, ";"))
|
|
os.execute("iwpriv wl0 set ACLClearAll=1")
|
|
os.execute("iwpriv wl1 set ACLClearAll=1")
|
|
os.execute("iwpriv wl3 set ACLClearAll=1")
|
|
if tonumber(info.model) == 0 then
|
|
for _, mac in ipairs(info.maclist) do
|
|
local cmac = XQFunction._cmdformat(mac)
|
|
os.execute("iwpriv wl0 set DisConnectSta=\""..cmac.."\"")
|
|
os.execute("iwpriv wl1 set DisConnectSta=\""..cmac.."\"")
|
|
os.execute("iwpriv wl3 set DisConnectSta=\""..cmac.."\"")
|
|
end
|
|
end
|
|
os.execute("iwpriv wl0 set ACLAddEntry=\""..macstr.."\"")
|
|
os.execute("iwpriv wl1 set ACLAddEntry=\""..macstr.."\"")
|
|
os.execute("iwpriv wl3 set ACLAddEntry=\""..macstr.."\"")
|
|
|
|
if tonumber(info.model) == 0 then
|
|
os.execute("iwpriv wl0 set AccessPolicy=2")
|
|
os.execute("iwpriv wl1 set AccessPolicy=2")
|
|
os.execute("iwpriv wl3 set AccessPolicy=2")
|
|
else
|
|
os.execute("iwpriv wl0 set AccessPolicy=1")
|
|
os.execute("iwpriv wl1 set AccessPolicy=1")
|
|
os.execute("iwpriv wl3 set AccessPolicy=1")
|
|
end
|
|
if #info.maclist == 0 then
|
|
os.execute("iwpriv wl0 set AccessPolicy=0")
|
|
os.execute("iwpriv wl1 set AccessPolicy=0")
|
|
os.execute("iwpriv wl3 set AccessPolicy=0")
|
|
end
|
|
os.execute("ubus call trafficd update_assoclist")
|
|
end
|
|
end |