summaryrefslogtreecommitdiff
path: root/files/common/www/service/cgi-bin/splash_click.html
blob: 59926d0844f097048590f1e7da000d34d65626e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/sh -e

. $IPKG_INSTROOT/etc/functions.sh
. /etc/splash.sh
. /www/service/cgi-bin/common.sh

# decode request params
#URL="http://$(sed 's/target_url=//g' | urldecode || true)"
URL="http://sotun.de/"
USER_MAC=$(grep ^$REMOTE_HOST </proc/net/arp \
	 | awk 'BEGIN { FS = " " } ; { print $4 }')
[ -n "$USER_MAC" ]

# check if user is already splashed; splash otherwise
lockSplash
ISSPLASHED=0
config_load splash_users
is_mac() {
   config_get mac "$1" mac
   if [ "$mac" == "$USER_MAC" ]; then
   	ISSPLASHED=1
   fi
}
config_foreach is_mac user
if [ $ISSPLASHED -eq 0 ]; then
    # user is now free to go
    chain=$chain_prefix$chain_id
    if have_internet; then
	iptables -t nat -I $chain 1 -m mac --mac-source $USER_MAC -j ACCEPT
    fi

    uci -q add splash_users user >/dev/null
    uci -q set splash_users.@user[-1].mac=$USER_MAC
    uci -q set splash_users.@user[-1].time=`date +%s`
fi
unlockSplash

# send response (encode / to not confuse sed)

echo -en "Status: 200 OK\r
Content-Type: text/html\r
\r
"
if have_internet; then
    sed "s/targeturl/$(echo "$URL" | sed 's#/#\\/#g')/g" iframe.html
else
    cat internet.html
fi
contact: Jan Huwald // Impressum