modules/admin-full: convert controller to new network model
This commit is contained in:
parent
185eacba4b
commit
a3e66af2a3
1 changed files with 72 additions and 61 deletions
|
@ -11,6 +11,7 @@ You may obtain a copy of the License at
|
||||||
|
|
||||||
$Id$
|
$Id$
|
||||||
]]--
|
]]--
|
||||||
|
|
||||||
module("luci.controller.admin.network", package.seeall)
|
module("luci.controller.admin.network", package.seeall)
|
||||||
|
|
||||||
function index()
|
function index()
|
||||||
|
@ -136,32 +137,28 @@ end
|
||||||
|
|
||||||
function wifi_add()
|
function wifi_add()
|
||||||
local dev = luci.http.formvalue("device")
|
local dev = luci.http.formvalue("device")
|
||||||
local uci = require "luci.model.uci".cursor()
|
local ntm = require "luci.model.network".init()
|
||||||
local wlm = require "luci.model.wireless"
|
|
||||||
|
dev = dev and ntm:get_wifidev(dev)
|
||||||
|
|
||||||
if dev then
|
if dev then
|
||||||
wlm.init(uci)
|
local net = dev:add_wifinet({
|
||||||
|
|
||||||
local net = wlm:add_network({
|
|
||||||
device = dev,
|
|
||||||
mode = "ap",
|
mode = "ap",
|
||||||
ssid = "OpenWrt",
|
ssid = "OpenWrt",
|
||||||
encryption = "none"
|
encryption = "none"
|
||||||
})
|
})
|
||||||
|
|
||||||
uci:save("wireless")
|
ntm:save("wireless")
|
||||||
luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless", dev, net:name()))
|
luci.http.redirect(net:adminlink())
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function wifi_delete(network)
|
function wifi_delete(network)
|
||||||
local uci = require "luci.model.uci".cursor()
|
local ntm = require "luci.model.network".init()
|
||||||
local wlm = require "luci.model.wireless"
|
|
||||||
|
|
||||||
wlm.init(uci)
|
ntm:del_network(network)
|
||||||
wlm:del_network(network)
|
ntm:save("wireless")
|
||||||
|
|
||||||
uci:save("wireless")
|
|
||||||
luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless"))
|
luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless"))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -199,49 +196,56 @@ end
|
||||||
|
|
||||||
|
|
||||||
function iface_status()
|
function iface_status()
|
||||||
local path = luci.dispatcher.context.requestpath
|
local path = luci.dispatcher.context.requestpath
|
||||||
local iface = path[#path]
|
local x = luci.model.uci.cursor_state()
|
||||||
local data = { }
|
local rv = { }
|
||||||
local info
|
|
||||||
local x = luci.model.uci.cursor_state()
|
|
||||||
|
|
||||||
local dev = x:get("network", iface, "device") or ""
|
local iface
|
||||||
if #dev == 0 or dev:match("^%d") or dev:match("%W") then
|
for iface in path[#path]:gmatch("[%w%.%-]+") do
|
||||||
dev = x:get("network", iface, "ifname") or ""
|
local dev = x:get("network", iface, "device") or ""
|
||||||
dev = dev:match("%S+")
|
if #dev == 0 or dev:match("^%d") or dev:match("%W") then
|
||||||
end
|
dev = x:get("network", iface, "ifname") or ""
|
||||||
|
dev = dev:match("%S+")
|
||||||
|
end
|
||||||
|
|
||||||
for _, info in ipairs(nixio.getifaddrs()) do
|
local info
|
||||||
local name = info.name:match("[^:]+")
|
local data = { }
|
||||||
if name == dev then
|
for _, info in ipairs(nixio.getifaddrs()) do
|
||||||
if info.family == "packet" then
|
local name = info.name:match("[^:]+")
|
||||||
data.flags = info.flags
|
if name == dev then
|
||||||
data.stats = info.data
|
if info.family == "packet" then
|
||||||
data.macaddr = info.addr
|
data.flags = info.flags
|
||||||
data.ifname = name
|
data.stats = info.data
|
||||||
elseif info.family == "inet" then
|
data.macaddr = info.addr
|
||||||
data.ipaddrs = data.ipaddrs or { }
|
data.ifname = name
|
||||||
data.ipaddrs[#data.ipaddrs+1] = {
|
elseif info.family == "inet" then
|
||||||
addr = info.addr,
|
data.ipaddrs = data.ipaddrs or { }
|
||||||
broadaddr = info.broadaddr,
|
data.ipaddrs[#data.ipaddrs+1] = {
|
||||||
dstaddr = info.dstaddr,
|
addr = info.addr,
|
||||||
netmask = info.netmask,
|
broadaddr = info.broadaddr,
|
||||||
prefix = info.prefix
|
dstaddr = info.dstaddr,
|
||||||
}
|
netmask = info.netmask,
|
||||||
elseif info.family == "inet6" then
|
prefix = info.prefix
|
||||||
data.ip6addrs = data.ip6addrs or { }
|
}
|
||||||
data.ip6addrs[#data.ip6addrs+1] = {
|
elseif info.family == "inet6" then
|
||||||
addr = info.addr,
|
data.ip6addrs = data.ip6addrs or { }
|
||||||
netmask = info.netmask,
|
data.ip6addrs[#data.ip6addrs+1] = {
|
||||||
prefix = info.prefix
|
addr = info.addr,
|
||||||
}
|
netmask = info.netmask,
|
||||||
|
prefix = info.prefix
|
||||||
|
}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if next(data) then
|
||||||
|
rv[#rv+1] = data
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if next(data) then
|
if #rv > 0 then
|
||||||
luci.http.prepare_content("application/json")
|
luci.http.prepare_content("application/json")
|
||||||
jsondump(data)
|
jsondump(rv)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -250,22 +254,29 @@ end
|
||||||
|
|
||||||
function wifi_status()
|
function wifi_status()
|
||||||
local path = luci.dispatcher.context.requestpath
|
local path = luci.dispatcher.context.requestpath
|
||||||
local dev = path[#path]
|
local rv = { }
|
||||||
local iw = luci.sys.wifi.getiwinfo(dev)
|
|
||||||
|
|
||||||
if iw then
|
local dev
|
||||||
local f
|
for dev in path[#path]:gmatch("[%w%.%-]+") do
|
||||||
local j = { }
|
local iw = luci.sys.wifi.getiwinfo(dev)
|
||||||
for _, f in ipairs({
|
if iw then
|
||||||
"channel", "frequency", "txpower", "bitrate", "signal", "noise",
|
local f
|
||||||
"quality", "quality_max", "mode", "ssid", "bssid", "country",
|
local j = { }
|
||||||
"encryption", "ifname"
|
for _, f in ipairs({
|
||||||
}) do
|
"channel", "frequency", "txpower", "bitrate", "signal", "noise",
|
||||||
j[f] = iw[f]
|
"quality", "quality_max", "mode", "ssid", "bssid", "country",
|
||||||
|
"encryption", "ifname"
|
||||||
|
}) do
|
||||||
|
j[f] = iw[f]
|
||||||
|
end
|
||||||
|
|
||||||
|
rv[#rv+1] = j
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if #rv > 0 then
|
||||||
luci.http.prepare_content("application/json")
|
luci.http.prepare_content("application/json")
|
||||||
jsondump(j)
|
jsondump(rv)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue