diff options
author | Steven Barth <steven@midlink.org> | 2009-05-25 10:31:02 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2009-05-25 10:31:02 +0000 |
commit | 282e08a0c796d0b1ab66dc335f833d02f83ee10c (patch) | |
tree | 03bdf2677cf064d09cf9a596ed3498c71e053084 /applications/luci-splash/root/usr | |
parent | b910def5ac4b5e248057d6bb2a8ab191b2402054 (diff) |
Fix LuCI-Frickel-Splashd
Diffstat (limited to 'applications/luci-splash/root/usr')
-rwxr-xr-x | applications/luci-splash/root/usr/bin/luci-splashd | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/applications/luci-splash/root/usr/bin/luci-splashd b/applications/luci-splash/root/usr/bin/luci-splashd index 6152daa524..a4f11c3bf2 100755 --- a/applications/luci-splash/root/usr/bin/luci-splashd +++ b/applications/luci-splash/root/usr/bin/luci-splashd @@ -1,20 +1,29 @@ #!/usr/bin/lua -local nixio = require "nixio" +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 = client:getsockname() + local srv = remapipv6(client:getsockname()) client:read(1024) - client:writeall("HTTP/1.0 302 Found\r\nLocation: http://" .. srv .. - (arg[2] or "/luci/splash") .. "\r\n\r\n") + 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 |