summaryrefslogtreecommitdiffhomepage
path: root/modules/admin-full/luasrc/model
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2008-08-07 20:21:38 +0000
committerSteven Barth <steven@midlink.org>2008-08-07 20:21:38 +0000
commitfbae92e522692d9bb34501ad9a805da794a47123 (patch)
tree2cf9e565ee268d4745177726ca29aae569a1876f /modules/admin-full/luasrc/model
parente72a526984982f6fa2b6f2ed5ce01523094bfe43 (diff)
modules/admin-full: Added support for interface aliases
Diffstat (limited to 'modules/admin-full/luasrc/model')
-rw-r--r--modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua6
-rw-r--r--modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua68
2 files changed, 66 insertions, 8 deletions
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