$Id$
]]--
+require("luci.tools.webadmin")
m = Map("network", translate("a_n_routes"), translate("a_n_routes1"))
-s = m:section(TypedSection, "route", "")
+if not arg or not arg[1] then
+ local routes = luci.sys.net.routes()
+
+ v = m:section(Table, routes, translate("a_n_routes_kernel4"))
+
+ net = v:option(DummyValue, "iface", translate("network"))
+ function net.cfgvalue(self, section)
+ return luci.tools.webadmin.iface_get_network(routes[section].Iface)
+ or routes[section].Iface
+ end
+
+ target = v:option(DummyValue, "target", translate("target"))
+ function target.cfgvalue(self, section)
+ return luci.ip.Hex(routes[section].Destination, 32):string()
+ end
+
+ netmask = v:option(DummyValue, "netmask", translate("netmask"))
+ function netmask.cfgvalue(self, section)
+ return luci.ip.Hex(routes[section].Mask, 32):string()
+ end
+
+ gateway = v:option(DummyValue, "gateway", translate("gateway"))
+ function gateway.cfgvalue(self, section)
+ return luci.ip.Hex(routes[section].Gateway, 32):string()
+ end
+
+ 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].dst_ip .. "/" .. routes6[section].dst_prefix
+ end
+--[[
+ netmask = v:option(DummyValue, "prefix", translate("prefix"))
+ function netmask.cfgvalue(self, section)
+ return luci.ip.Hex(routes6[section].Mask, 32):string()
+ end
+]]
+ gateway = v:option(DummyValue, "gateway", translate("gateway6"))
+ function gateway.cfgvalue(self, section)
+ return routes6[section].src_ip .. "/" .. routes6[section].src_prefix
+ end
+
+ metric = v:option(DummyValue, "Metric", translate("metric"))
+ function metric.cfgvalue(self, section)
+ return string.format( "%08X", routes6[section].metric )
+ end
+end
+
+
+s = m:section(TypedSection, "route", translate("a_n_routes_static"))
s.addremove = true
s.anonymous = true
+
s.template = "cbi/tblsection"
iface = s:option(ListValue, "interface", translate("interface"))
-luci.model.uci.foreach("network", "interface",
- function (section)
- if section[".name"] ~= "loopback" then
- iface:value(section[".name"])
- end
- end)
+luci.tools.webadmin.cbi_add_networks(iface)
+
+if not arg or not arg[1] then
+ net.titleref = iface.titleref
+end
s:option(Value, "target", translate("target"), translate("a_n_r_target1"))
s:option(Value, "gateway", translate("gateway"))
-return m
\ No newline at end of file
+
+s = m:section(TypedSection, "route6", translate("a_n_routes_static6"))
+s.addremove = true
+s.anonymous = true
+
+s.template = "cbi/tblsection"
+
+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
+
+s:option(Value, "target", translate("target"), translate("a_n_r_target6"))
+
+s:option(Value, "gateway", translate("gateway6")).rmempty = true
+
+
+return m