summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/luasrc/controller/admin/index.lua
diff options
context:
space:
mode:
Diffstat (limited to 'modules/luci-base/luasrc/controller/admin/index.lua')
-rw-r--r--modules/luci-base/luasrc/controller/admin/index.lua18
1 files changed, 18 insertions, 0 deletions
diff --git a/modules/luci-base/luasrc/controller/admin/index.lua b/modules/luci-base/luasrc/controller/admin/index.lua
index 39004c6760..1f7db0cb38 100644
--- a/modules/luci-base/luasrc/controller/admin/index.lua
+++ b/modules/luci-base/luasrc/controller/admin/index.lua
@@ -80,6 +80,9 @@ function index()
if has_wifi then
page = entry({"admin", "wireless_assoclist"}, call("wifi_assoclist"), nil)
page.leaf = true
+
+ page = entry({"admin", "wireless_deauth"}, post("wifi_deauth"), nil)
+ page.leaf = true
end
page = entry({"admin", "translations"}, call("action_translations"), nil)
@@ -144,3 +147,18 @@ function wifi_assoclist()
luci.http.prepare_content("application/json")
luci.http.write_json(s.wifi_assoclist())
end
+
+function wifi_deauth()
+ local iface = luci.http.formvalue("iface")
+ local bssid = luci.http.formvalue("bssid")
+
+ if iface and bssid then
+ luci.util.ubus("hostapd.%s" % iface, "del_client", {
+ addr = bssid,
+ deauth = true,
+ reason = 5,
+ ban_time = 60000
+ })
+ end
+ luci.http.status(200, "OK")
+end