diff options
-rw-r--r-- | modules/luci-base/luasrc/sys/iptparser.lua | 11 | ||||
-rw-r--r-- | modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm | 10 |
2 files changed, 21 insertions, 0 deletions
diff --git a/modules/luci-base/luasrc/sys/iptparser.lua b/modules/luci-base/luasrc/sys/iptparser.lua index 2b81e0ee3..64353956b 100644 --- a/modules/luci-base/luasrc/sys/iptparser.lua +++ b/modules/luci-base/luasrc/sys/iptparser.lua @@ -19,6 +19,8 @@ luci.util = require "luci.util" luci.sys = require "luci.sys" luci.ip = require "luci.ip" +local pcall = pcall +local io = require "io" local tonumber, ipairs, table = tonumber, ipairs, table module("luci.sys.iptparser") @@ -37,6 +39,15 @@ function IptParser.__init__( self, family ) else self._nulladdr = "::/0" self._tables = { "filter", "mangle", "raw" } + local ok, lines = pcall(io.lines, "/proc/net/ip6_tables_names") + if ok and lines then + local line + for line in lines do + if line == "nat" then + self._tables = { "filter", "nat", "mangle", "raw" } + end + end + end self._command = "ip6tables -t %s --line-numbers -nxvL" end diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm index f49469a59..3f4b83b80 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm @@ -9,6 +9,7 @@ require "luci.sys.iptparser" local wba = require "luci.tools.webadmin" local fs = require "nixio.fs" + local io = require "io" local has_ip6tables = fs.access("/usr/sbin/ip6tables") local mode = 4 @@ -47,6 +48,15 @@ local tables = { "Filter", "NAT", "Mangle", "Raw" } if mode == 6 then tables = { "Filter", "Mangle", "Raw" } + local ok, lines = pcall(io.lines, "/proc/net/ip6_tables_names") + if ok and lines then + local line + for line in lines do + if line == "nat" then + tables = { "Filter", "NAT", "Mangle", "Raw" } + end + end + end end -%> |