diff options
Diffstat (limited to 'modules/luci-base')
-rw-r--r-- | modules/luci-base/luasrc/sys/iptparser.lua | 11 |
1 files changed, 11 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 |