+function wifi_reconnect()
+ local path = luci.dispatcher.context.requestpath
+ local mode = path[#path-1]
+ local wnet = path[#path]
+ local netmd = require "luci.model.network".init()
+
+ local net = netmd:get_wifinet(wnet)
+ local dev = net:get_device()
+ if dev and net then
+ luci.sys.call("env -i /sbin/wifi down >/dev/null 2>/dev/null")
+
+ dev:set("disabled", nil)
+ net:set("disabled", (mode == "wireless_shutdown") and 1 or nil)
+ netmd:commit("wireless")
+
+ luci.sys.call("env -i /sbin/wifi up >/dev/null 2>/dev/null")
+ luci.http.status(200, (mode == "wireless_shutdown") and "Shutdown" or "Reconnected")
+
+ return
+ end
+
+ luci.http.status(404, "No such radio")
+end
+
+function lease_status()
+ local s = require "luci.tools.status"
+
+ luci.http.prepare_content("application/json")
+ luci.http.write('[')
+ luci.http.write_json(s.dhcp_leases())
+ luci.http.write(',')
+ luci.http.write_json(s.dhcp6_leases())
+ luci.http.write(']')
+end
+
+function switch_status()
+ local path = luci.dispatcher.context.requestpath
+ local s = require "luci.tools.status"
+
+ luci.http.prepare_content("application/json")
+ luci.http.write_json(s.switch_status(path[#path]))
+end
+
+function diag_command(cmd)