function index()
entry({"admin", "services", "splash"}, cbi("splash/splash"), _("Client-Splash"), 90)
function index()
entry({"admin", "services", "splash"}, cbi("splash/splash"), _("Client-Splash"), 90)
node("splash", "splash").target = template("splash_splash/splash")
node("splash", "blocked").target = template("splash/blocked")
node("splash", "splash").target = template("splash_splash/splash")
node("splash", "blocked").target = template("splash/blocked")
- entry({"admin", "status", "splash"}, call("action_status_admin"), _("Client-Splash"))
+ entry({"admin", "status", "splash"}, post("action_status_admin"), _("Client-Splash"))
local page = node("splash", "publicstatus")
page.target = call("action_status_public")
local page = node("splash", "publicstatus")
page.target = call("action_status_public")
-
- for i, n in ipairs(ipc.neighbors()) do
- if n.mac and n.dest and n.dest:equal(ip) then
- return n.mac
- end
+ for i, n in ipairs(ipc.neighbors({ dest = ip })) do
+ local mac = ipc.checkmac(n.mac)
+ if mac then return mac end
- uci:foreach("luci_splash", "lease", function(s)
- if s.mac and s.mac:lower() == mac then access = true end
- end)
+ if mac then
+ uci:foreach("luci_splash", "lease", function(s)
+ if ipc.checkmac(s.mac) == mac then
+ access = true
+ return false
+ end
+ end)
- uci:foreach("luci_splash", "whitelist", function(s)
- if s.mac and s.mac:lower() == mac then access = true end
- end)
+ uci:foreach("luci_splash", "whitelist", function(s)
+ if ipc.checkmac(s.mac) == mac then
+ access = true
+ return false
+ end
+ end)
+ end
luci.http.redirect(luci.dispatcher.build_url())
else
luci.http.redirect(luci.dispatcher.build_url("splash", "splash"))
luci.http.redirect(luci.dispatcher.build_url())
else
luci.http.redirect(luci.dispatcher.build_url("splash", "splash"))
- uci:foreach("luci_splash", "blacklist",
- function(s) leased_macs[s.mac:lower()] = true
+ uci:foreach("luci_splash", "blacklist", function(s)
+ local m = ipc.checkmac(s.mac)
+ if m then leased_macs[m] = true end
local uci_state = require "luci.model.uci".cursor_state()
local blacklisted = false
if mac and luci.http.formvalue("accept") then
local uci_state = require "luci.model.uci".cursor_state()
local blacklisted = false
if mac and luci.http.formvalue("accept") then
- uci:foreach("luci_splash", "blacklist",
- function(s) if s.mac and s.mac:lower() == mac then blacklisted = true end
+ uci:foreach("luci_splash", "blacklist", function(s)
+ if ipc.checkmac(s.mac) == mac then
+ blacklisted = true
+ return false
+ end
- redirect_url = uci_state:get("luci_splash_locations", mac:gsub(':', ''):lower(), "location")
+ redirect_url = uci_state:get("luci_splash_locations", id, "location")
end
if not redirect_url then
redirect_url = luci.model.uci.cursor():get("freifunk", "community", "homepage") or 'http://www.freifunk.net'
end
end
if not redirect_url then
redirect_url = luci.model.uci.cursor():get("freifunk", "community", "homepage") or 'http://www.freifunk.net'
end
for key, _ in pairs(macs) do
local policy = luci.http.formvalue("policy.%s" % key)
local mac = luci.http.protocol.urldecode(key)
for key, _ in pairs(macs) do
local policy = luci.http.formvalue("policy.%s" % key)
local mac = luci.http.protocol.urldecode(key)
-function remove_redirect(mac)
- local mac = mac:lower()
- mac = mac:gsub(":", "")
+function remove_redirect(id)
local uci = require "luci.model.uci".cursor_state()
local redirects = uci:get_all("luci_splash_locations")
--uci:load("luci_splash_locations")
uci:revert("luci_splash_locations")
local uci = require "luci.model.uci".cursor_state()
local redirects = uci:get_all("luci_splash_locations")
--uci:load("luci_splash_locations")
uci:revert("luci_splash_locations")
for k, v in pairs(redirects) do
if v[".type"] == "redirect" then
for k, v in pairs(redirects) do
if v[".type"] == "redirect" then
-- Rewrite state
uci:section("luci_splash_locations", "redirect", v[".name"], {
location = v.location
-- Rewrite state
uci:section("luci_splash_locations", "redirect", v[".name"], {
location = v.location