diff options
author | Steven Barth <steven@midlink.org> | 2008-08-07 20:21:38 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-08-07 20:21:38 +0000 |
commit | fbae92e522692d9bb34501ad9a805da794a47123 (patch) | |
tree | 2cf9e565ee268d4745177726ca29aae569a1876f /modules/admin-full/luasrc | |
parent | e72a526984982f6fa2b6f2ed5ce01523094bfe43 (diff) |
modules/admin-full: Added support for interface aliases
Diffstat (limited to 'modules/admin-full/luasrc')
3 files changed, 68 insertions, 9 deletions
diff --git a/modules/admin-full/luasrc/controller/admin/network.lua b/modules/admin-full/luasrc/controller/admin/network.lua index 3fb45f804..1d44bda77 100644 --- a/modules/admin-full/luasrc/controller/admin/network.lua +++ b/modules/admin-full/luasrc/controller/admin/network.lua @@ -38,7 +38,8 @@ function index() function (section) local ifc = section[".name"] if ifc ~= "loopback" then - entry({"admin", "network", "ifaces", ifc}, page.target, ifc) + entry({"admin", "network", "ifaces", ifc}, + page.target, ifc:upper()) end end ) diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua b/modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua index f85eb5219..b50b05cb3 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua @@ -31,6 +31,12 @@ luci.model.uci.foreach("network", "interface", end end) +luci.model.uci.foreach("network", "alias", + function (section) + iface:value(section[".name"]) + s:depends("interface", section[".name"]) + end) + s:option(Value, "start", translate("start")).rmempty = true s:option(Value, "limit", translate("limit")).rmempty = true diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua b/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua index bea425d72..dc50fdc94 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua @@ -13,13 +13,13 @@ $Id$ ]]-- m = Map("network", translate("interfaces"), translate("a_n_ifaces1")) -s = m:section(TypedSection, "interface", "") -function s.filter(section) - return section ~= "loopback" and (not arg or #arg == 0 or - luci.util.contains(arg, section)) +s = m:section(TypedSection, "interface", translate("interfaces")) +function s.filter(self, section) + return section ~= "loopback" and + (not arg or not arg[1] or arg[1] == section) end -if not arg or #arg == 0 then +if not arg or not arg[1] then s.addremove = true end s:depends("proto", "static") @@ -42,6 +42,7 @@ for i,d in ipairs(luci.sys.net.devices()) do end end + ipaddr = s:option(Value, "ipaddr", translate("ipaddress")) ipaddr.rmempty = true ipaddr:depends("proto", "static") @@ -57,13 +58,17 @@ gw = s:option(Value, "gateway", translate("gateway")) gw:depends("proto", "static") gw.rmempty = true +bcast = s:option(Value, "bcast", translate("broadcast")) +bcast:depends("proto", "static") +bcast.optional = true + ip6addr = s:option(Value, "ip6addr", translate("ip6address"), translate("cidr6")) -ip6addr.rmempty = true +ip6addr.optional = true ip6addr:depends("proto", "static") ip6gw = s:option(Value, "ip6gw", translate("gateway6")) ip6gw:depends("proto", "static") -ip6gw.rmempty = true +ip6gw.optional = true dns = s:option(Value, "dns", translate("dnsserver")) dns:depends("proto", "static") @@ -76,4 +81,51 @@ mtu.isinteger = true mac = s:option(Value, "macaddr", translate("macaddress")) mac.optional = true -return m
\ No newline at end of file + + + +s2 = m:section(TypedSection, "alias", translate("aliases")) +s2.addremove = true + +if arg and arg[1] and luci.model.uci.get("network", arg[1]) then + s2:depends("interface", arg[1]) + s2.defaults.interface = arg[1] +else + parent = s2:option(ListValue, "interface", translate("interface")) + luci.model.uci.foreach("network", "interface", + function (section) + if section[".name"] ~= "loopback" then + parent:value(section[".name"]) + end + end + ) +end + + +s2.defaults.proto = "static" + +ipaddr = s2:option(Value, "ipaddr", translate("ipaddress")) +ipaddr.rmempty = true + +nm = s2:option(Value, "netmask", translate("netmask")) +nm.rmempty = true +nm:value("255.255.255.0") +nm:value("255.255.0.0") +nm:value("255.0.0.0") + +gw = s2:option(Value, "gateway", translate("gateway")) +gw.rmempty = true + +bcast = s2:option(Value, "bcast", translate("broadcast")) +bcast.optional = true + +ip6addr = s2:option(Value, "ip6addr", translate("ip6address"), translate("cidr6")) +ip6addr.optional = true + +ip6gw = s2:option(Value, "ip6gw", translate("gateway6")) +ip6gw.optional = true + +dns = s2:option(Value, "dns", translate("dnsserver")) +dns.optional = true + +return m |