summaryrefslogtreecommitdiffhomepage
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/admin-core/luasrc/controller/admin/servicectl.lua8
-rw-r--r--modules/admin-full/luasrc/controller/admin/network.lua75
-rw-r--r--modules/admin-full/luasrc/controller/admin/status.lua10
-rw-r--r--modules/freifunk/luasrc/controller/freifunk/freifunk.lua5
4 files changed, 39 insertions, 59 deletions
diff --git a/modules/admin-core/luasrc/controller/admin/servicectl.lua b/modules/admin-core/luasrc/controller/admin/servicectl.lua
index 68a59364c2..753d2c77f1 100644
--- a/modules/admin-core/luasrc/controller/admin/servicectl.lua
+++ b/modules/admin-core/luasrc/controller/admin/servicectl.lua
@@ -30,15 +30,13 @@ function action_status()
end
end
-function action_restart()
+function action_restart(args)
local uci = require "luci.model.uci".cursor()
- local rqp = luci.dispatcher.context.requestpath
-
- if rqp[3] then
+ if args then
local service
local services = { }
- for service in rqp[3]:gmatch("[%w_-]+") do
+ for service in args:gmatch("[%w_-]+") do
services[#services+1] = service
end
diff --git a/modules/admin-full/luasrc/controller/admin/network.lua b/modules/admin-full/luasrc/controller/admin/network.lua
index 6f55ff7779..f401ecd185 100644
--- a/modules/admin-full/luasrc/controller/admin/network.lua
+++ b/modules/admin-full/luasrc/controller/admin/network.lua
@@ -68,7 +68,7 @@ function index()
page = entry({"admin", "network", "wireless_reconnect"}, call("wifi_reconnect"), nil)
page.leaf = true
- page = entry({"admin", "network", "wireless_shutdown"}, call("wifi_reconnect"), nil)
+ page = entry({"admin", "network", "wireless_shutdown"}, call("wifi_shutdown"), nil)
page.leaf = true
page = entry({"admin", "network", "wireless"}, arcombine(template("admin_network/wifi_overview"), cbi("admin_network/wifi")), _("Wifi"), 15)
@@ -241,13 +241,12 @@ function wifi_delete(network)
luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless"))
end
-function iface_status()
- local path = luci.dispatcher.context.requestpath
+function iface_status(ifaces)
local netm = require "luci.model.network".init()
local rv = { }
local iface
- for iface in path[#path]:gmatch("[%w%.%-_]+") do
+ for iface in ifaces:gmatch("[%w%.%-_]+") do
local net = netm:get_network(iface)
local device = net and net:get_interface()
if device then
@@ -324,11 +323,8 @@ function iface_status()
luci.http.status(404, "No such device")
end
-function iface_reconnect()
- local path = luci.dispatcher.context.requestpath
- local iface = path[#path]
+function iface_reconnect(iface)
local netmd = require "luci.model.network".init()
-
local net = netmd:get_network(iface)
if net then
luci.sys.call("env -i /sbin/ifup %q >/dev/null 2>/dev/null" % iface)
@@ -339,11 +335,8 @@ function iface_reconnect()
luci.http.status(404, "No such interface")
end
-function iface_shutdown()
- local path = luci.dispatcher.context.requestpath
- local iface = path[#path]
+function iface_shutdown(iface)
local netmd = require "luci.model.network".init()
-
local net = netmd:get_network(iface)
if net then
luci.sys.call("env -i /sbin/ifdown %q >/dev/null 2>/dev/null" % iface)
@@ -354,11 +347,8 @@ function iface_shutdown()
luci.http.status(404, "No such interface")
end
-function iface_delete()
- local path = luci.dispatcher.context.requestpath
- local iface = path[#path]
+function iface_delete(iface)
local netmd = require "luci.model.network".init()
-
local net = netmd:del_network(iface)
if net then
luci.sys.call("env -i /sbin/ifdown %q >/dev/null 2>/dev/null" % iface)
@@ -371,13 +361,12 @@ function iface_delete()
luci.http.status(404, "No such interface")
end
-function wifi_status()
- local path = luci.dispatcher.context.requestpath
+function wifi_status(devs)
local s = require "luci.tools.status"
local rv = { }
local dev
- for dev in path[#path]:gmatch("[%w%.%-]+") do
+ for dev in devs:gmatch("[%w%.%-]+") do
rv[#rv+1] = s.wifi_network(dev)
end
@@ -390,23 +379,19 @@ function wifi_status()
luci.http.status(404, "No such device")
end
-function wifi_reconnect()
- local path = luci.dispatcher.context.requestpath
- local mode = path[#path-1]
- local wnet = path[#path]
+local function wifi_reconnect_shutdown(shutdown, wnet)
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)
+ net:set("disabled", 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")
+ luci.http.status(200, shutdown and "Shutdown" or "Reconnected")
return
end
@@ -414,6 +399,14 @@ function wifi_reconnect()
luci.http.status(404, "No such radio")
end
+function wifi_reconnect(wnet)
+ wifi_reconnect_shutdown(false, wnet)
+end
+
+function wifi_shutdown(wnet)
+ wifi_reconnect_shutdown(true, wnet)
+end
+
function lease_status()
local s = require "luci.tools.status"
@@ -425,18 +418,14 @@ function lease_status()
luci.http.write(']')
end
-function switch_status()
- local path = luci.dispatcher.context.requestpath
+function switch_status(switches)
local s = require "luci.tools.status"
luci.http.prepare_content("application/json")
- luci.http.write_json(s.switch_status(path[#path]))
+ luci.http.write_json(s.switch_status(switches))
end
-function diag_command(cmd)
- local path = luci.dispatcher.context.requestpath
- local addr = path[#path]
-
+function diag_command(cmd, addr)
if addr and addr:match("^[a-zA-Z0-9%-%.:_]+$") then
luci.http.prepare_content("text/plain")
@@ -458,22 +447,22 @@ function diag_command(cmd)
luci.http.status(500, "Bad address")
end
-function diag_ping()
- diag_command("ping -c 5 -W 1 %q 2>&1")
+function diag_ping(addr)
+ diag_command("ping -c 5 -W 1 %q 2>&1", addr)
end
-function diag_traceroute()
- diag_command("traceroute -q 1 -w 1 -n %q 2>&1")
+function diag_traceroute(addr)
+ diag_command("traceroute -q 1 -w 1 -n %q 2>&1", addr)
end
-function diag_nslookup()
- diag_command("nslookup %q 2>&1")
+function diag_nslookup(addr)
+ diag_command("nslookup %q 2>&1", addr)
end
-function diag_ping6()
- diag_command("ping6 -c 5 %q 2>&1")
+function diag_ping6(addr)
+ diag_command("ping6 -c 5 %q 2>&1", addr)
end
-function diag_traceroute6()
- diag_command("traceroute6 -q 1 -w 2 -n %q 2>&1")
+function diag_traceroute6(addr)
+ diag_command("traceroute6 -q 1 -w 2 -n %q 2>&1", addr)
end
diff --git a/modules/admin-full/luasrc/controller/admin/status.lua b/modules/admin-full/luasrc/controller/admin/status.lua
index d7d301c542..a9e37c7995 100644
--- a/modules/admin-full/luasrc/controller/admin/status.lua
+++ b/modules/admin-full/luasrc/controller/admin/status.lua
@@ -71,10 +71,7 @@ function action_iptables()
end
end
-function action_bandwidth()
- local path = luci.dispatcher.context.requestpath
- local iface = path[#path]
-
+function action_bandwidth(iface)
luci.http.prepare_content("application/json")
local bwc = io.popen("luci-bwc -i %q 2>/dev/null" % iface)
@@ -92,10 +89,7 @@ function action_bandwidth()
end
end
-function action_wireless()
- local path = luci.dispatcher.context.requestpath
- local iface = path[#path]
-
+function action_wireless(iface)
luci.http.prepare_content("application/json")
local bwc = io.popen("luci-bwc -r %q 2>/dev/null" % iface)
diff --git a/modules/freifunk/luasrc/controller/freifunk/freifunk.lua b/modules/freifunk/luasrc/controller/freifunk/freifunk.lua
index 666f0864b3..e81e07c94e 100644
--- a/modules/freifunk/luasrc/controller/freifunk/freifunk.lua
+++ b/modules/freifunk/luasrc/controller/freifunk/freifunk.lua
@@ -251,15 +251,14 @@ function jsonstatus()
ltn12.pump.all(json.Encoder(root):source(), http.write)
end
-function public_status_json()
+function public_status_json(devs)
local twa = require "luci.tools.webadmin"
local sys = require "luci.sys"
local i18n = require "luci.i18n"
- local path = luci.dispatcher.context.requestpath
local rv = { }
local dev
- for dev in path[#path]:gmatch("[%w%.%-]+") do
+ for dev in devs:gmatch("[%w%.%-]+") do
local j = { id = dev }
local iw = luci.sys.wifi.getiwinfo(dev)
if iw then