summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2008-12-10 21:45:29 +0000
committerSteven Barth <steven@midlink.org>2008-12-10 21:45:29 +0000
commit5412893954dd557c17d38971e010baf1f7528ce4 (patch)
tree7f2a578abb54a0f00715149c337bc43d0dfa9c91
parent8e62419bcbdc8d61de6baca241dd1d559c3a6735 (diff)
Fixed an overflow error with IPv6 route metric
-rw-r--r--modules/admin-full/luasrc/model/cbi/admin_network/routes.lua6
1 files changed, 5 insertions, 1 deletions
diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua b/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua
index be6629774..4767e07d5 100644
--- a/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua
+++ b/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua
@@ -15,6 +15,7 @@ require("luci.tools.webadmin")
m = Map("network", translate("a_n_routes"), translate("a_n_routes1"))
local routes6 = luci.sys.net.routes6()
+local bit = require "bit"
if not arg or not arg[1] then
local routes = luci.sys.net.routes()
@@ -68,7 +69,10 @@ if not arg or not arg[1] then
metric = v:option(DummyValue, "metric", translate("metric"))
function metric.cfgvalue(self, section)
- return string.format( "%08X", routes6[section].metric )
+ local metr = routes6[section].metric
+ local lower = bit.band(metr, 0xffff)
+ local higher = bit.rshift(bit.band(metr, 0xffff0000), 16)
+ return "%04X%04X" % {higher, lower}
end
end
end