luci-app-nft-qos: fix monitor doesn't work when there no ipv6 support. 2406/head
authorRosy Song <rosysong@rosinson.com>
Sat, 29 Dec 2018 09:31:12 +0000 (17:31 +0800)
committerRosy Song <rosysong@rosinson.com>
Sat, 29 Dec 2018 09:31:12 +0000 (17:31 +0800)
Signed-off-by: Rosy Song <rosysong@rosinson.com>
applications/luci-app-nft-qos/luasrc/controller/nft-qos.lua

index 42043505dc1b99132f495d340d2517e49b10d0b1..f7e399352f6095af449215574ee85a5134b49e39 100644 (file)
@@ -17,7 +17,12 @@ function index()
 end
 
 function _action_rate(rv, n)
-       local c = io.popen("nft list chain inet nft-qos-monitor " .. n .. " 2>/dev/null")
+       local has_ipv6 = nixio.fs.access("/proc/net/ipv6_route")
+       if has_ipv6 then
+               local c = io.popen("nft list chain inet nft-qos-monitor " .. n .. " 2>/dev/null")
+       else
+               local c = io.popen("nft list chain ip nft-qos-monitor " .. n .. " 2>/dev/null")
+       end
        if c then
                for l in c:lines() do
                        local _, i, p, b = l:match('^%s+ip ([^%s]+) ([^%s]+) counter packets (%d+) bytes (%d+)')