29 lines
685 B
Lua
Executable file
29 lines
685 B
Lua
Executable file
#!/usr/bin/lua
|
|
|
|
local nixio = require "nixio", require "nixio.util"
|
|
local server = nixio.bind(nil, arg[1] or 8082)
|
|
local stat = server:listen(32)
|
|
|
|
local function remapipv6(adr)
|
|
local map = "::ffff:"
|
|
if adr:sub(1, #map) == map then
|
|
return adr:sub(#map+1)
|
|
else
|
|
return adr
|
|
end
|
|
end
|
|
|
|
while stat do
|
|
local client = server:accept()
|
|
|
|
if client then
|
|
client:setopt("socket", "rcvtimeo", 1)
|
|
client:setopt("socket", "sndtimeo", 1)
|
|
local srv = remapipv6(client:getsockname())
|
|
|
|
client:read(1024)
|
|
client:writeall("HTTP/1.1 302 Found\r\nLocation: http://" .. srv ..
|
|
(arg[2] or "/luci/splash") .. "\r\nContent-Length: 0\r\nConnection: close\r\n\r\n")
|
|
client:close()
|
|
end
|
|
end
|