mirror of https://git.openwrt.org/project/luci.git
applications/luci-commands, applications/luci-upnp, modules/admin-core, modules/admin-full, modules/freifunk: clean up argument handling of leaf nodes
This commit is contained in:
parent
ef8e4eb991
commit
69ac1031b7
|
@ -141,9 +141,7 @@ local function parse_args(str)
|
|||
end
|
||||
|
||||
local function parse_cmdline(cmdid, args)
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
local path = luci.dispatcher.context.requestpath
|
||||
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
if uci:get("luci", cmdid) == "command" then
|
||||
local cmd = uci:get_all("luci", cmdid)
|
||||
local argv = parse_args(cmd.command)
|
||||
|
@ -228,7 +226,8 @@ end
|
|||
|
||||
function action_public(cmdid, args)
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
if uci:get("luci", cmdid) == "command" and
|
||||
if cmdid and
|
||||
uci:get("luci", cmdid) == "command" and
|
||||
uci:get("luci", cmdid, "public") == "1"
|
||||
then
|
||||
action_download(cmdid, args)
|
||||
|
|
|
@ -69,10 +69,8 @@ function act_status()
|
|||
end
|
||||
end
|
||||
|
||||
function act_delete()
|
||||
local path = luci.dispatcher.context.requestpath
|
||||
local idx = tonumber(path[#path])
|
||||
|
||||
function act_delete(idx)
|
||||
idx = tonumber(idx)
|
||||
if idx and idx > 0 then
|
||||
luci.sys.call("iptables -t filter -D MINIUPNPD %d 2>/dev/null" % idx)
|
||||
luci.sys.call("iptables -t nat -D MINIUPNPD %d 2>/dev/null" % idx)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue