root/ff-luci/trunk/modules/admin-core/luasrc/tools/webadmin.lua @ 2860

Revision 2860, 3.3 KB (checked in by Cyrus, 5 years ago)

Fixed a typo

Line 
1--[[
2LuCI - Lua Configuration Interface
3
4Copyright 2008 Steven Barth <steven@midlink.org>
5Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
6
7Licensed under the Apache License, Version 2.0 (the "License");
8you may not use this file except in compliance with the License.
9You may obtain a copy of the License at
10
11    http://www.apache.org/licenses/LICENSE-2.0
12
13$Id$
14]]--
15
16module("luci.tools.webadmin", package.seeall)
17require("luci.model.uci")
18require("luci.sys")
19require("luci.ip")
20
21function byte_format(byte)
22    local suff = {"B", "KB", "MB", "GB", "TB"}
23    for i=1, 5 do
24        if byte > 1024 and i < 5 then
25            byte = byte / 1024
26        else
27            return string.format("%.2f %s", byte, suff[i]) 
28        end 
29    end
30end
31
32function date_format(secs)
33    local suff = {"min", "h", "d"}
34    local mins = 0
35    local hour = 0
36    local days = 0
37    if secs > 60 then
38        mins = math.floor(secs / 60)
39        secs = secs % 60
40    end
41   
42    if mins > 60 then
43        hour = math.floor(mins / 60)
44        mins = mins % 60
45    end
46   
47    if hour > 24 then
48        days = math.floor(hour / 24)
49        hour = hour % 24
50    end
51   
52    if days > 0 then
53        return string.format("%dd %02dh %02dmin %02ds", days, hour, mins, secs)
54    else
55        return string.format("%02dh %02dmin %02ds", hour, mins, secs)
56    end
57end
58
59function network_get_addresses(net)
60    luci.model.uci.load_state("network")
61    local addr = {}
62    local ipv4 = luci.model.uci.get("network", net, "ipaddr")
63    local mav4 = luci.model.uci.get("network", net, "netmask")
64    local ipv6 = luci.model.uci.get("network", net, "ip6addr")
65   
66    if ipv4 and mav4 then
67        ipv4 = luci.ip.IPv4(ipv4, mav4)
68       
69        if ipv4 then 
70            table.insert(addr, ipv4:string())
71        end
72    end
73
74    if ipv6 then
75        table.insert(addr, ipv6)
76    end
77   
78    luci.model.uci.foreach("network", "alias",
79        function (section)
80            if section.interface == net then
81                if section.ipaddr and section.netmask then
82                    local ipv4 = luci.ip.IPv4(section.ipaddr, section.netmask)
83                   
84                    if ipv4 then
85                        table.insert(addr, ipv4:string())
86                    end
87                end
88               
89                if section.ip6addr then
90                    table.insert(addr, section.ip6addr)
91                end
92            end
93        end
94    )
95   
96    return addr
97end
98
99function cbi_add_networks(field)
100    luci.model.uci.foreach("network", "interface",
101        function (section)
102            if section[".name"] ~= "loopback" then
103                field:value(section[".name"])
104            end
105        end
106    )
107    field.titleref = luci.dispatcher.build_url("admin", "network", "network")
108end
109
110function cbi_add_knownips(field)
111    for i, dataset in ipairs(luci.sys.net.arptable()) do
112        field:value(dataset["IP address"])
113    end
114end
115
116function network_get_zones(net)
117    if not luci.model.uci.load_state("firewall") then
118        return nil
119    end
120   
121    local zones = {}
122   
123    luci.model.uci.foreach("firewall", "zone", 
124        function (section)
125            local znet = section.network or section.name
126            if luci.util.contains(luci.util.split(znet, " "), net) then
127                table.insert(zones, section.name)
128            end
129        end
130    )
131   
132    return zones
133end
134
135function firewall_find_zone(name)
136    local find
137   
138    luci.model.uci.foreach("firewall", "zone", 
139        function (section)
140            if section.name == name then
141                find = section[".name"]
142            end
143        end
144    )
145   
146    return find
147end
148
149function iface_get_network(iface)
150    luci.model.uci.load_state("network")
151    local net
152   
153    luci.model.uci.foreach("network", "interface",
154        function (section)
155            local ifname = luci.model.uci.get(
156                "network", section[".name"], "ifname"
157            )
158           
159            if iface == ifname then
160                net = section[".name"]
161            end
162        end
163    )
164   
165    return net
166end
Note: See TracBrowser for help on using the browser.