summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2016-03-17 15:32:26 +0100
committerJo-Philipp Wich <jow@openwrt.org>2016-03-17 15:32:26 +0100
commit516689a646351ab86dd126bd0a69851c77733e96 (patch)
tree259236c63c1f9d7632ef1bfd7042ac3ab701573c
parentb77602f2e7ab72e7a20917b7c4ca1c2c01554aeb (diff)
parenta77ff30057c691009dac646adbac28d6230814b6 (diff)
Merge pull request #655 from hnyman/nat6
Add support for showing ipv6 NAT table in Luci
-rw-r--r--modules/luci-base/luasrc/sys/iptparser.lua11
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm10
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 2b81e0ee38..64353956b0 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 f49469a599..3f4b83b80b 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
-%>