applications/luci-splash: fix mac address detection in mixed IPv4/IPv6 environments
authorJo-Philipp Wich <jow@openwrt.org>
Sat, 30 May 2009 18:06:08 +0000 (18:06 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sat, 30 May 2009 18:06:08 +0000 (18:06 +0000)
applications/luci-splash/luasrc/controller/splash/splash.lua

index 5731efc8ca5b6aed2767f09fb2a483cb3b20762a..c209647207cdb838bee15b11f758b8368b3b6195 100644 (file)
@@ -19,7 +19,10 @@ function action_dispatch()
 end
 
 function action_activate()
-       local mac = luci.sys.net.ip4mac(luci.http.getenv("REMOTE_ADDR"))
+       local ip = luci.http.getenv("REMOTE_ADDR") or "127.0.0.1"
+       local mac = luci.sys.net.ip4mac(
+               ip:match("::") and (ip:gsub("^%[::ffff:(.+)%]", "%1")) or ip
+       )
        if mac and luci.http.formvalue("accept") then
                os.execute("luci-splash add "..mac.." >/dev/null 2>&1")
                luci.http.redirect(luci.model.uci.cursor():get("freifunk", "community", "homepage"))