diff options
author | Steven Barth <steven@midlink.org> | 2008-08-13 22:54:38 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-08-13 22:54:38 +0000 |
commit | 58f183a28269ded9f41eb980b63a607421689f63 (patch) | |
tree | 5cd1a4e51a2a8c5d8e90703ef232f7c064194fe4 /modules/admin-core/luasrc/tools | |
parent | 741e0c89a4e4e9821731a28d4117cdac27539a19 (diff) |
Completed rewrite of network interface configuration page
Diffstat (limited to 'modules/admin-core/luasrc/tools')
-rw-r--r-- | modules/admin-core/luasrc/tools/webadmin.lua | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/modules/admin-core/luasrc/tools/webadmin.lua b/modules/admin-core/luasrc/tools/webadmin.lua index 3664997a5..ac11845d4 100644 --- a/modules/admin-core/luasrc/tools/webadmin.lua +++ b/modules/admin-core/luasrc/tools/webadmin.lua @@ -16,6 +16,7 @@ $Id$ module("luci.tools.webadmin", package.seeall) require("luci.model.uci") require("luci.sys") +require("luci.ip") function byte_format(byte) local suff = {"B", "KB", "MB", "GB", "TB"} @@ -28,6 +29,45 @@ function byte_format(byte) end end +function network_get_addresses(net) + local addr = {} + local ipv4 = luci.model.uci.get_statevalue("network", net, "ipaddr") + local mav4 = luci.model.uci.get_statevalue("network", net, "netmask") + local ipv6 = luci.model.uci.get_statevalue("network", net, "ip6addr") + + if ipv4 and mav4 then + ipv4 = luci.ip.IPv4(ipv4, mav4) + + if ipv4 then + table.insert(addr, ipv4:string()) + end + end + + if ipv6 then + table.insert(addr, ipv6) + end + + luci.model.uci.foreach("network", "alias", + function (section) + if section.interface == net then + if section.ipaddr and section.netmask then + local ipv4 = luci.ip.IPv4(section.ipaddr, section.netmask) + + if ipv4 then + table.insert(addr, ipv4:string()) + end + end + + if section.ip6addr then + table.insert(addr, section.ip6addr) + end + end + end + ) + + return addr +end + function cbi_add_networks(field) luci.model.uci.foreach("network", "interface", function (section) @@ -42,4 +82,37 @@ function cbi_add_knownips(field) for i, dataset in ipairs(luci.sys.net.arptable()) do field:value(dataset["IP address"]) end +end + +function network_get_zones(net) + if not luci.model.uci.load("firewall") then + return nil + end + + local zones = {} + + luci.model.uci.foreach("firewall", "zone", + function (section) + local znet = section.network or section.name + if luci.util.contains(luci.util.split(znet, " "), net) then + table.insert(zones, section.name) + end + end + ) + + return zones +end + +function firewall_find_zone(name) + local find + + luci.model.uci.foreach("firewall", "zone", + function (section) + if section.name == name then + find = section[".name"] + end + end + ) + + return find end
\ No newline at end of file |