From: Steven Barth Date: Sun, 30 Nov 2008 18:43:10 +0000 (+0000) Subject: Don't fail if we do not have v6 support X-Git-Tag: 0.9.0~928 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=cd8e12d72a038bc3d6f4a62225c83f12815e28cd;p=oweals%2Fluci.git Don't fail if we do not have v6 support --- diff --git a/libs/sys/luasrc/sys.lua b/libs/sys/luasrc/sys.lua index 948da5b1e..e92adc1ad 100644 --- a/libs/sys/luasrc/sys.lua +++ b/libs/sys/luasrc/sys.lua @@ -320,7 +320,11 @@ end -- "flags", "device" } function net.defaultroute6() local route = nil - for _, r in pairs(net.routes6()) do + local routes6 = net.routes6() + if not routes6 then + return nil + end + for _, r in pairs(routes6) do if r.dest:prefix() == 0 and (not route or route.metric > r.metric) then route = r end @@ -417,6 +421,10 @@ end function net.routes6() local routes = { } + if not luci.fs.access("/proc/net/ipv6_route", "r") then + return nil + end + for line in io.lines("/proc/net/ipv6_route") do local dst_ip, dst_prefix, src_ip, src_prefix, nexthop, 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 aa22cf63f..0d20d6722 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua @@ -14,6 +14,8 @@ $Id$ require("luci.tools.webadmin") m = Map("network", translate("a_n_routes"), translate("a_n_routes1")) +local routes6 = luci.sys.net.routes6() + if not arg or not arg[1] then local routes = luci.sys.net.routes() @@ -42,31 +44,30 @@ if not arg or not arg[1] then metric = v:option(DummyValue, "Metric", translate("metric")) - - local routes6 = luci.sys.net.routes6() - - v = m:section(Table, routes6, translate("a_n_routes_kernel6")) - - net = v:option(DummyValue, "iface", translate("network")) - function net.cfgvalue(self, section) - return luci.tools.webadmin.iface_get_network(routes6[section].device) - or routes6[section].device - end - - target = v:option(DummyValue, "target", translate("target")) - function target.cfgvalue(self, section) - return routes6[section].dest:string() - end - - gateway = v:option(DummyValue, "gateway", translate("gateway6")) - function gateway.cfgvalue(self, section) - return routes6[section].source:string() + if routes6 then + v = m:section(Table, routes6, translate("a_n_routes_kernel6")) + + net = v:option(DummyValue, "iface", translate("network")) + function net.cfgvalue(self, section) + return luci.tools.webadmin.iface_get_network(routes6[section].device) + or routes6[section].device + end + + target = v:option(DummyValue, "target", translate("target")) + function target.cfgvalue(self, section) + return routes6[section].dest:string() + end + + gateway = v:option(DummyValue, "gateway", translate("gateway6")) + function gateway.cfgvalue(self, section) + return routes6[section].source:string() + end + + metric = v:option(DummyValue, "Metric", translate("metric")) + function metric.cfgvalue(self, section) + return string.format( "%08X", routes6[section].metric ) + end end - - metric = v:option(DummyValue, "Metric", translate("metric")) - function metric.cfgvalue(self, section) - return string.format( "%08X", routes6[section].metric ) - end end @@ -89,23 +90,24 @@ s:option(Value, "netmask", translate("netmask"), translate("a_n_r_netmask1")).rm s:option(Value, "gateway", translate("gateway")) +if routes6 then + s = m:section(TypedSection, "route6", translate("a_n_routes_static6")) + s.addremove = true + s.anonymous = true -s = m:section(TypedSection, "route6", translate("a_n_routes_static6")) -s.addremove = true -s.anonymous = true + s.template = "cbi/tblsection" -s.template = "cbi/tblsection" + iface = s:option(ListValue, "interface", translate("interface")) + luci.tools.webadmin.cbi_add_networks(iface) -iface = s:option(ListValue, "interface", translate("interface")) -luci.tools.webadmin.cbi_add_networks(iface) - -if not arg or not arg[1] then - net.titleref = iface.titleref -end + if not arg or not arg[1] then + net.titleref = iface.titleref + end -s:option(Value, "target", translate("target"), translate("a_n_r_target6")) + s:option(Value, "target", translate("target"), translate("a_n_r_target6")) -s:option(Value, "gateway", translate("gateway6")).rmempty = true + s:option(Value, "gateway", translate("gateway6")).rmempty = true +end return m