require("luci.ip")
require("luci.model.uci")
-luci.model.uci.load_state("network")
+local uci = luci.model.uci.cursor_state()
+uci:load("network")
local server = socket.bind("0.0.0.0", arg[1] or 8082)
server:settimeout(0, "t")
if client then
client:settimeout(1)
local srv
- local ip = luci.ip.IPv4(client:getpeername())
- luci.model.uci.foreach("network", "interface",
- function (section)
- if section.ipaddr then
- local net = luci.ip.IPv4(section.ipaddr, section.netmask)
- if ip and net and net:contains(ip) then
- srv = section.ipaddr
- return
- end
- end
- end)
+ local ip = luci.ip.IPv4((client:getpeername()))
+
+ local function find_srv(section)
+ if section.ipaddr then
+ local net = luci.ip.IPv4(section.ipaddr, section.netmask)
+ if ip and net and net:contains(ip) then
+ srv = section.ipaddr
+ return
+ end
+ end
+ end
+
+ uci:foreach("network", "interface", find_srv)
+ uci:foreach("network", "alias", find_srv)
client:receive()
client:send("HTTP/1.0 302 Found\r\nLocation: http://" .. srv ..