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
|