#!/bin/sh export DATE="18.9.2008";SCRIPT=${0#/rom} export TITLE="Administração: DHCP Splash" . ${SCRIPT%/*}/cgi-bin-pre.sh cat<Administração: 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 eval $(/usr/bin/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<

Interfaces

Gama IP para o interface WIFI
$(html_radio ff_dhcpsplash_wifi off $wifi_mode)Desactivado
$(html_radio ff_dhcpsplash_wifi dhcp $wifi_mode)OLSR-DHCP
$(html_radio ff_dhcpsplash_wifi net $wifi_mode)Rede
$(html_radio ff_dhcpsplash_wifi custom $wifi_mode)Definição manual:
Gama IP para o interface LAN
$(html_radio ff_dhcpsplash_lan off $lan_mode)Desactivado
$(html_radio ff_dhcpsplash_lan net $lan_mode)Rede
$(html_radio ff_dhcpsplash_lan custom $lan_mode)Definição manual:
 

Acordo

$(html_radio ff_dhcpsplash_ag off $ag_mode)Desactivado
$(html_radio ff_dhcpsplash_ag url $ag_mode)Usar URL
Pode usar <wifiip> <wifimac> <clientip> <clientmac> como marcadores, eles serão substituidos pelos respectivos valores.
$(html_radio ff_dhcpsplash_ag text $ag_mode)Texto padrão $(html_radio ff_dhcpsplash_ag custom $ag_mode)Texto personalizado: $(html_textarea agtext)
 

Página de boas vindas.

$(html_radio ff_dhcpsplash_hp off $hp_mode)Desactivado
$(html_radio ff_dhcpsplash_hp url $hp_mode)Usar URL
Pode usar <wifiip> <wifimac> <clientip> <clientmac> como marcadores, eles serão substituidos pelos respectivos valores.
$(html_radio ff_dhcpsplash_hp text $hp_mode)Texto padrão $(html_radio ff_dhcpsplash_hp custom $hp_mode)Texto personalizado:$(html_textarea hptext)
 

Serviços desbloqueados para utilizadores recém-chegados

$(html_radio ff_dhcpsplash_publicmode on $(splash_getvar ff_dhcpsplash_publicmode)) Permitir todas as ligações. Todos os serviços com excepção do HTTP que é utilizado para apresentar a página de splash estão abertos para todos os utilizadores, permanentemente.
$(html_radio ff_dhcpsplash_publicmode off $(splash_getvar ff_dhcpsplash_publicmode))Permitir apenas as ligações essenciais a sites externos que eventualmente alojem a página de acordo/boasvindas (HTTP, HTTPS)
Serviços adicionais
$(html_radio ff_dhcpsplash_publicsrv_cust no $publicsrv_cust) Padrão $(html_radio ff_dhcpsplash_publicsrv_cust custom $publicsrv_cust) Definições personalizadas $(html_textarea publicsrv)
 

Política para utilizadores recém-chegados

$(html_radio ff_dhcpsplash_block all $block_mode)Bloquear todos excepto os expressamente permitidos
$(html_radio ff_dhcpsplash_block acl $block_mode)Bloquear apenas utilizadores seleccionados
Endereços MAC bloqueados Endereços MAC permitidos
$(html_textarea blocked 6 27) $(html_textarea preauth 6 27) EOF ## display mac address x=$(splash_getmac "$REMOTE_ADDR") if [ -n "$x" ];then cat<
O seu próprio endereço MAC $x
EOF fi cat<
$(html_radio ff_dhcpsplash_blockedmsg_cust no $blockedmsg_cust)Texto padrão $(html_radio ff_dhcpsplash_blockedmsg_cust custom $blockedmsg_cust)Texto personalizado: $(html_textarea blockedmsg)
 
         
EOF else cat<
O DHCP-Splash não está activado. Por favor, reinicie o equipamento.
 
$(html_checkbox ff_dhcpsplash on $(splash_getvar ff_dhcpsplash))DHCP Splash activado
 
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<As alterações tomarão efeito após o próximo reínicio do equipamento. 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<As definições reverteram para os valores padrão 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<As alterações foram efectuadas, e já se encontram activadas EOF fi fi . ${SCRIPT%/*}/cgi-bin-post.sh