#!/bin/sh export DATE="9.5.2010";SCRIPT=${0#/rom} export TITLE="Verwaltung: DHCP-Splash" . ${SCRIPT%/*}/cgi-bin-pre.sh cat<Verwaltung: DHCP-Splash EOF . /www/cgi-bin/dhcpsplash/admin.sh . /www/cgi-bin/dhcpsplash/clients.sh . /www/cgi-bin/dhcpsplash/clients-admin.sh . /www/cgi-bin/dhcpsplash/defaults.sh . /www/cgi-bin/dhcpsplash/ranges.sh . /www/cgi-bin/dhcpsplash/vars.sh . /etc/functions.sh get_netparam ## some html helper functions # ARGS: name value default_value html_radio() { cat<  EOF } # ARGS: name value default_value html_checkbox() { cat<  EOF } # ARGS: name textfile rows cols html_textarea() { echo "" } if [ "$REQUEST_METHOD" = "POST" ]; then read QUERY_STRING fi if [ -z "$QUERY_STRING" ]; then # wifi iprange wifi_mode=$(splash_getvar ff_dhcpsplash_wifi) test "$wifi_mode" != "off" -a "$wifi_mode" != "dhcp" -a "$wifi_mode" != "net" && wifi_mode="custom" wifi_current=$(splash_wifirange) # lan iprange lan_mode=$(splash_getvar ff_dhcpsplash_lan) test "$lan_mode" != "off" -a "$lan_mode" != "net" && lan_mode="custom" lan_current=$(splash_lanrange) # agreement screen ag_url=$(splash_getvar ff_dhcpsplash_agurl) ag_mode=$(splash_getvar ff_dhcpsplash_ag) # welcome screen hp_url=$(splash_getvar ff_dhcpsplash_hpurl) hp_mode=$(splash_getvar ff_dhcpsplash_hp) # public services publicsrv_cust=$(splash_getvar ff_dhcpsplash_publicsrv_cust) # blocking block_mode=$(splash_getvar ff_dhcpsplash_block) blockedmsg_cust=$(splash_getvar ff_dhcpsplash_blockedmsg_cust) if splash_running; then cat<

Schnittstellen

IP-Bereich für die WIFI Schnittstelle
$(html_radio ff_dhcpsplash_wifi off $wifi_mode)Deaktiviert
$(html_radio ff_dhcpsplash_wifi dhcp $wifi_mode)OLSR-DHCP
$(html_radio ff_dhcpsplash_wifi net $wifi_mode)Netzwerk
$(html_radio ff_dhcpsplash_wifi custom $wifi_mode)Eigener Wert:
IP-Bereich für die LAN Schnittstelle
$(html_radio ff_dhcpsplash_lan off $lan_mode)Deaktiviert
$(html_radio ff_dhcpsplash_lan net $lan_mode)Netzwerk
$(html_radio ff_dhcpsplash_lan custom $lan_mode)Eigener Wert:
 

Nutzungsbestimmungen

$(html_radio ff_dhcpsplash_ag off $ag_mode)Deaktiviert
$(html_radio ff_dhcpsplash_ag url $ag_mode)URL verwenden:
Die Platzhalter <wifiip> <wifimac> <clientip> <clientmac> werden durch die entsprechenden Werte ersetzt.
$(html_radio ff_dhcpsplash_ag text $ag_mode)Standardtext $(html_radio ff_dhcpsplash_ag custom $ag_mode)Eigener Text: $(html_textarea agtext)
 

Willkommen-Seite

$(html_radio ff_dhcpsplash_hp off $hp_mode)Deaktiviert
$(html_radio ff_dhcpsplash_hp url $hp_mode)URL verwenden:
Die Platzhalter <wifiip> <wifimac> <clientip> <clientmac> werden durch die entsprechenden Werte ersetzt.
$(html_radio ff_dhcpsplash_hp text $hp_mode)Standardtext $(html_radio ff_dhcpsplash_hp custom $hp_mode)Eigener Text:$(html_textarea hptext)
 

Freigeschaltete Dienste für unangemeldete Benutzer

$(html_radio ff_dhcpsplash_publicmode on $(splash_getvar ff_dhcpsplash_publicmode)) Alle Verbindungen zulassen. Alle Dienste ausser HTTP (für den Splash genutzt) sind für alle Benutzer zu jedem Zeitpunkt verfügbar.
$(html_radio ff_dhcpsplash_publicmode off $(splash_getvar ff_dhcpsplash_publicmode))Nur notwendige Verbindungen zu externer Bestimmungs-/Willkommensseite erlauben (HTTP, HTTPS)
Weitere Dienste
$(html_radio ff_dhcpsplash_publicsrv_cust no $publicsrv_cust) Standard $(html_radio ff_dhcpsplash_publicsrv_cust custom $publicsrv_cust) Eigene Werte: $(html_textarea publicsrv)
 

Behandlung von unangemeldeten Benutzern

$(html_radio ff_dhcpsplash_block all $block_mode)Alle ausser freigeschaltete sperren:
$(html_radio ff_dhcpsplash_block acl $block_mode)Auswahl sperren:
Gesperrte MAC-Adressen: Freigeschaltete MAC-Adressen:
$(html_textarea blocked 6 27)$(html_textarea preauth 6 27) EOF ## display mac address x=$(splash_getmac "$REMOTE_ADDR") if [ -n "$x" ];then cat<
MAC Adresse deines Computers: $x
EOF fi cat<
$(html_radio ff_dhcpsplash_blockedmsg_cust no $blockedmsg_cust)Standardtext $(html_radio ff_dhcpsplash_blockedmsg_cust custom $blockedmsg_cust)Eigener Text: $(html_textarea blockedmsg)
 
         
EOF else cat<
DHCP-Splash zur Zeit nicht gestartet. Der Konfigurationsdialog ist daher nicht aktiv.
 
$(html_checkbox ff_dhcpsplash on $(splash_getvar ff_dhcpsplash))DHCP Splash aktivieren
 
EOF fi else IFS=\&;set ${QUERY_STRING%%[^%&=+-:@-_a-z~]*};unset IFS;eval $* DIRTY= if [ -n "$post_dhcpsplash_run" ]; then ## update variables DIRTY=1 if [ -z "${ff_dhcpsplash%%on}" -a -n "$ff_dhcpsplash" ]; then nvram set ff_dhcpsplash="on" else nvram unset ff_dhcpsplash fi nvram commit>/dev/null 2>&1 cat<Die geänderten Einstellungen wurden Übernommen. Die Einstellungen sind erst beim nächsten Neustart aktiv. EOF elif [ -n "$post_dhcpsplash_reset" ]; then for V in ff_dhcpsplash_wifi ff_dhcpsplash_lan ff_dhcpsplash_agurl ff_dhcpsplash_ag ff_dhcpsplash_hpurl ff_dhcpsplash_hp ff_dhcpsplash_block ff_dhcpsplash_publicmode ff_dhcpsplash_preauth ff_dhcpsplash_blocked ff_dhcpsplash_agtext ff_dhcpsplash_hptext ff_dhcpsplash_blockedmsg ff_dhcpsplash_publicsrv ff_dhcpsplash_publicsrv_cust ff_dhcpsplash_blockedmsg_cust; do nvram unset "$V" DIRTY=1 done ## commit if required if [ -n "$DIRTY" ]; then nvram commit>/dev/null 2>&1 ## update iptables splash_update_iptables 2>/dev/null fi cat<Die Einstellungen wurden auf ihre Standardwerte zurückgesetzt. Ein Neustart des Routers ist nicht nötig. EOF elif [ -n "$post_dhcpsplash" ]; then vars="ff_dhcpsplash_wifi ff_dhcpsplash_lan ff_dhcpsplash_agurl ff_dhcpsplash_ag ff_dhcpsplash_hpurl ff_dhcpsplash_hp ff_dhcpsplash_block ff_dhcpsplash_publicmode ff_dhcpsplash_publicsrv_cust ff_dhcpsplash_blockedmsg_cust" texts="ff_dhcpsplash_preauth ff_dhcpsplash_blocked" if [ "$ff_dhcpsplash_wifi" = "custom" ]; then ff_dhcpsplash_wifi="$ff_dhcpsplash_wifi_custom" fi if [ "$ff_dhcpsplash_lan" = "custom" ]; then ff_dhcpsplash_lan="$ff_dhcpsplash_lan_custom" fi if [ "$ff_dhcpsplash_ag" = "custom" ]; then texts="$texts ff_dhcpsplash_agtext" else nvram unset ff_dhcpsplash_agtext fi if [ "$ff_dhcpsplash_hp" = "custom" ]; then texts="$texts ff_dhcpsplash_hptext" else nvram unset ff_dhcpsplash_hptext fi if [ "$ff_dhcpsplash_blockedmsg_cust" = "custom" ]; then texts="$texts ff_dhcpsplash_blockedmsg" else nvram unset ff_dhcpsplash_blockedmsg fi if [ "$ff_dhcpsplash_publicsrv_cust" = "custom" ]; then texts="$texts ff_dhcpsplash_publicsrv" else nvram unset ff_dhcpsplash_publicsrv fi ## update variables for V in $vars; do eval "C=\$$V" C=$(httpd -d $C) if [ "$C" != "$(nvram get $V)" ]; then DIRTY=1 nvram set $V="$C" fi done ## update texts for T in $texts; do eval "C=\$$T" if [ "$C" != "$(nvram get $T)" ]; then DIRTY=1 nvram set $T="$C" fi done ## commit if required if [ -n "$DIRTY" ]; then nvram commit>/dev/null 2>&1 ## update iptables splash_update_iptables 2>/dev/null fi cat<Die geänderten Einstellungen wurden übernommen. Ein Neustart des Routers ist nicht nötig. EOF fi fi . ${SCRIPT%/*}/cgi-bin-post.sh