summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Huwald <jh@sotun.de>2012-03-30 11:32:01 (GMT)
committerJan Huwald <jh@sotun.de>2012-03-30 11:32:01 (GMT)
commit84649be9f2e0f42d039f1ac422a63c9edaf78a8d (patch)
tree18bada03dde120e5f6559a38f8d2fda1fc1bf47e
parentba08eb8e76f10b01a7c244b6818c0c09588314f7 (diff)
adapt splash and robinson redirection to new webif
-rwxr-xr-xfiles/common/etc/fsm/inetable/trans/queen.enter2
-rwxr-xr-xfiles/common/etc/fsm/inetable/trans/robinson.enter2
-rwxr-xr-xfiles/common/www/service/cgi-bin/splash.html (renamed from files/common/www/service/cgi-bin/splash)2
-rwxr-xr-xfiles/common/www/service/cgi-bin/splash_click.html (renamed from files/common/www/service/cgi-bin/splash_click)25
4 files changed, 21 insertions, 10 deletions
diff --git a/files/common/etc/fsm/inetable/trans/queen.enter b/files/common/etc/fsm/inetable/trans/queen.enter
index 9753a81..a7c5539 100755
--- a/files/common/etc/fsm/inetable/trans/queen.enter
+++ b/files/common/etc/fsm/inetable/trans/queen.enter
@@ -54,7 +54,7 @@ set dhcp.mesh.end_ip=$dhcp_end
## set splash
# start redirection httpd (for splash), add GW IP to the addrs service
# httpd listens on
-echo "http://$gwip/cgi-bin/splash? /sbin/urlencode" > /tmp/redirection_target
+echo "http://$gwip/cgi-bin/splash.html? /sbin/urlencode" > /tmp/redirection_target
enable_httpd redirection $gwip:81
change_service_httpd_listen $gwip:80
/etc/init.d/uhttpd restart
diff --git a/files/common/etc/fsm/inetable/trans/robinson.enter b/files/common/etc/fsm/inetable/trans/robinson.enter
index 42e97cb..38ae604 100755
--- a/files/common/etc/fsm/inetable/trans/robinson.enter
+++ b/files/common/etc/fsm/inetable/trans/robinson.enter
@@ -38,7 +38,7 @@ set dhcp.fakedns.name='#'
batctl gw off
# start redirection httpd, add robinson IP to service httpd
-echo "http://$randip/robinson.html" > /tmp/redirection_target
+echo "http://$randip/" > /tmp/redirection_target
enable_httpd redirection $randip:81
change_service_httpd_listen $randip:80
/etc/init.d/uhttpd restart
diff --git a/files/common/www/service/cgi-bin/splash b/files/common/www/service/cgi-bin/splash.html
index 1237ce0..b8c8264 100755
--- a/files/common/www/service/cgi-bin/splash
+++ b/files/common/www/service/cgi-bin/splash.html
@@ -4,4 +4,4 @@ echo -en "Content-Type: text/html\r\n"
echo -en "\r\n"
targeturl="$(echo "$QUERY_STRING" | tr -d '/')"
-sed "s/targeturl/$targeturl/g" splash.html
+sed "s/targeturl/$targeturl/g" index.html
diff --git a/files/common/www/service/cgi-bin/splash_click b/files/common/www/service/cgi-bin/splash_click.html
index 1eb4e85..59926d0 100755
--- a/files/common/www/service/cgi-bin/splash_click
+++ b/files/common/www/service/cgi-bin/splash_click.html
@@ -1,15 +1,15 @@
#!/bin/sh -e
+
. $IPKG_INSTROOT/etc/functions.sh
. /etc/splash.sh
-
-echo -en "Status: 200 OK\r\n"
-echo -en "Content-Type: text/html\r\n"
-echo -en "\r\n"
+. /www/service/cgi-bin/common.sh
# decode request params
-URL="http://$(sed 's/target_url=//g' | urldecode)"
+#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
@@ -25,7 +25,9 @@ config_foreach is_mac user
if [ $ISSPLASHED -eq 0 ]; then
# user is now free to go
chain=$chain_prefix$chain_id
- iptables -t nat -I $chain 1 -m mac --mac-source $USER_MAC -j ACCEPT
+ 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
@@ -34,4 +36,13 @@ fi
unlockSplash
# send response (encode / to not confuse sed)
-sed "s/targeturl/$(echo "$URL" | sed 's#/#\\/#g')/g" iframe.html
+
+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