luci-mod-status: replace iptables controller actions with cgi-io calls

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2019-12-18 21:57:01 +01:00
parent e144356e5e
commit 43a4481e10
4 changed files with 8 additions and 33 deletions

View file

@ -48,7 +48,9 @@
"/usr/bin/traceroute *": [ "exec" ], "/usr/bin/traceroute *": [ "exec" ],
"/usr/bin/traceroute6 *": [ "exec" ], "/usr/bin/traceroute6 *": [ "exec" ],
"/usr/bin/nslookup *": [ "exec" ], "/usr/bin/nslookup *": [ "exec" ],
"/usr/libexec/luci-peeraddr": [ "exec" ] "/usr/libexec/luci-peeraddr": [ "exec" ],
"/usr/sbin/iptables --line-numbers -w -nvxL -t *": [ "exec" ],
"/usr/sbin/ip6tables --line-numbers -w -nvxL -t *": [ "exec" ]
}, },
"ubus": { "ubus": {
"file": [ "list", "read", "stat" ], "file": [ "list", "read", "stat" ],

View file

@ -246,8 +246,10 @@ function parse_output(table, s)
} }
table_names.forEach(function(table) { table_names.forEach(function(table) {
L.poll(5, L.url('admin/status/iptables_dump', current_mode, table.toLowerCase()), null, L.Poll.add(function() {
function (xhr) { var cmd = (current_mode == 6) ? '/usr/sbin/ip6tables' : '/usr/sbin/iptables';
parse_output(table, xhr.responseText); return L.fs.exec_direct(cmd, [ '--line-numbers', '-w', '-nvxL', '-t', table.toLowerCase() ]).then(function(output) {
parse_output(table, output);
}); });
}, 5);
}); });

View file

@ -14,27 +14,6 @@ function action_dmesg()
luci.template.render("admin_status/dmesg", {dmesg=dmesg}) luci.template.render("admin_status/dmesg", {dmesg=dmesg})
end end
function dump_iptables(family, table)
local prefix = (family == "6") and "ip6" or "ip"
local ok, lines = pcall(io.lines, "/proc/net/%s_tables_names" % prefix)
if ok and lines then
local s
for s in lines do
if s == table then
luci.http.prepare_content("text/plain")
luci.sys.process.exec({
"/usr/sbin/%stables" % prefix, "-w", "-t", table,
"--line-numbers", "-nxvL"
}, luci.http.write)
return
end
end
end
luci.http.status(404, "No such table")
luci.http.prepare_content("text/plain")
end
function action_iptables() function action_iptables()
if luci.http.formvalue("zero") then if luci.http.formvalue("zero") then
if luci.http.formvalue("family") == "6" then if luci.http.formvalue("family") == "6" then

View file

@ -17,14 +17,6 @@
} }
}, },
"admin/status/iptables_dump/*": {
"action": {
"type": "call",
"module": "luci.controller.admin.status",
"function": "dump_iptables"
}
},
"admin/status/iptables_action/*": { "admin/status/iptables_action/*": {
"action": { "action": {
"type": "call", "type": "call",