applications/luci-splash: speedup splash dispatching
authorJo-Philipp Wich <jow@openwrt.org>
Fri, 10 Jul 2009 22:45:50 +0000 (22:45 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Fri, 10 Jul 2009 22:45:50 +0000 (22:45 +0000)
applications/luci-splash/luasrc/controller/splash/splash.lua

index 2906298f1d7b933d89b538597f884273607533e7..362ad9def413bb9614d950949329d0dbadf17b08 100644 (file)
@@ -11,12 +11,21 @@ function index()
 end
 
 function action_dispatch()
+       local uci = luci.model.uci.cursor_state()
        local mac = luci.sys.net.ip4mac(luci.http.getenv("REMOTE_ADDR")) or ""
-       local status = luci.util.execl("luci-splash status " .. mac)[1]
-       if #mac > 0 and status == "new" then
-               luci.http.redirect(luci.dispatcher.build_url("splash", "splash"))
-       else
+       local access = false
+
+       uci:foreach("luci_splash", "lease", function(s)
+               if s.mac and s.mac:lower() == mac then access = true end
+       end)
+       uci:foreach("luci_splash", "whitelist", function(s)
+               if s.mac and s.mac:lower() == mac then access = true end
+       end)
+
+       if #mac > 0 and access then
                luci.http.redirect(luci.dispatcher.build_url())
+       else
+               luci.http.redirect(luci.dispatcher.build_url("splash", "splash"))
        end
 end