diff options
Diffstat (limited to 'applications/luci-splash/root/usr')
3 files changed, 20 insertions, 63 deletions
diff --git a/applications/luci-splash/root/usr/bin/luci-splashd b/applications/luci-splash/root/usr/bin/luci-splashd new file mode 100755 index 0000000000..33391cc5bb --- /dev/null +++ b/applications/luci-splash/root/usr/bin/luci-splashd @@ -0,0 +1,20 @@ +#!/usr/bin/lua +require("socket") + +local server = socket.bind("0.0.0.0", arg[1] or 8082) +server:settimeout(0, "t") + +while true do + local client = server:accept() + + if client then + client:settimeout(1) + local srv = client:getsockname() + client:receive() + client:send("HTTP/1.0 302 Found\r\nLocation: http://" .. srv .. + (arg[2] or "/luci/splash") .. "\r\n\r\n") + client:close() + else + socket.sleep(0.1) + end +end diff --git a/applications/luci-splash/root/usr/lib/luci-splash/htdocs/cgi-bin/index.cgi b/applications/luci-splash/root/usr/lib/luci-splash/htdocs/cgi-bin/index.cgi deleted file mode 100755 index 29679a21cf..0000000000 --- a/applications/luci-splash/root/usr/lib/luci-splash/htdocs/cgi-bin/index.cgi +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/lua - -require("luci.sys") -require("luci.model.uci") - -luci.model.uci.set_savedir(luci.model.uci.savedir_state) - -local srv -local net -local ip = os.getenv("REMOTE_ADDR") -luci.model.uci.foreach("network", "interface", - function (section) - if section.ipaddr then - local p = luci.sys.net.mask4prefix(section.netmask) - if luci.sys.net.belongs(ip, section.ipaddr, p) then - net = section[".name"] - srv = section.ipaddr - return - end - end - end) - -local stat = false -luci.model.uci.foreach("luci_splash", "iface", - function (section) - if section.network == net then - stat = true - end - end) - -if not srv then - print("Content-Type: text/plain\n") - print("Unable to detect network settings!") -elseif not stat then - print("Status: 302 Found") - print("Location: http://" .. srv) -else - local action = "splash" - - local mac = luci.sys.net.ip4mac(ip) - if not mac then - action = "unknown" - end - - local status = luci.sys.execl("luci-splash status "..mac)[1] - - if status == "whitelisted" or status == "lease" then - action = "allowed" - end - - print("Status: 302 Found") - print("Location: http://" .. srv .. "/cgi-bin/luci-splash/" .. action) -end diff --git a/applications/luci-splash/root/usr/lib/luci-splash/htdocs/index.html b/applications/luci-splash/root/usr/lib/luci-splash/htdocs/index.html deleted file mode 100644 index 39ba558dfb..0000000000 --- a/applications/luci-splash/root/usr/lib/luci-splash/htdocs/index.html +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<meta http-equiv="refresh" content="0; URL=/cgi-bin/index.cgi" /> -</head> -<body style="background-color: black"> -<a style="color: white; text-decoration: none" href="/cgi-bin/index.cgi">LuCI - Lua Configuration Interface</a> -</body> -</html>
\ No newline at end of file |