modules/admin-full: implement iptables status page
[project/luci.git] / modules / admin-full / luasrc / controller / admin / status.lua
index 09e7766..fd61459 100644 (file)
@@ -19,7 +19,8 @@ function index()
 
        entry({"admin", "status"}, template("admin_status/index"), i18n("status", "Status"), 20).index = true
        entry({"admin", "status", "syslog"}, call("action_syslog"), i18n("syslog", "Systemprotokoll"), 1)
-    entry({"admin", "status", "dmesg"}, call("action_dmesg"), i18n("dmesg", "Kernelprotokoll"), 2)
+       entry({"admin", "status", "dmesg"}, call("action_dmesg"), i18n("dmesg", "Kernelprotokoll"), 2)
+       entry({"admin", "status", "iptables"}, call("action_iptables"), i18n("a_s_ipt", "Firewall"), 3)
 end
 
 function action_syslog()
@@ -31,3 +32,19 @@ function action_dmesg()
        local dmesg = luci.sys.dmesg()
        luci.template.render("admin_status/dmesg", {dmesg=dmesg})
 end
+
+function action_iptables()
+       if luci.http.formvalue("zero") == "1" then
+               luci.util.exec("iptables -Z")
+               luci.http.redirect(
+                       luci.dispatcher.build_url("admin", "status", "iptables")
+               )
+       elseif luci.http.formvalue("restart") == "1" then
+               luci.util.exec("/etc/init.d/firewall restart")
+               luci.http.redirect(
+                       luci.dispatcher.build_url("admin", "status", "iptables")
+               )
+       else
+               luci.template.render("admin_status/iptables")
+       end
+end