tazpanel diff network.cgi @ rev 239

network.sh: Make ESSID clickable to select it and detect WPA2
author Christophe Lincoln <pankso@slitaz.org>
date Tue Feb 28 12:46:02 2012 +0100 (2012-02-28)
parents 3fe4007eaf93
children 70d08efa0334
line diff
     1.1 --- a/network.cgi	Tue Feb 28 12:00:50 2012 +0100
     1.2 +++ b/network.cgi	Tue Feb 28 12:46:02 2012 +0100
     1.3 @@ -29,21 +29,21 @@
     1.4  EOT
     1.5  	if [ -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then
     1.6  		ifconfig $WIFI_INTERFACE up
     1.7 -		for i in `iwlist $WIFI_INTERFACE scan | sed s/"Cell "/Cell-/ | grep "Cell-" | awk '{print $1}'`
     1.8 +		for i in $(iwlist $WIFI_INTERFACE scan | sed s/"Cell "/Cell-/ | grep "Cell-" | awk '{print $1}')
     1.9  		do
    1.10 -			SCAN=`iwlist $WIFI_INTERFACE scan last | \
    1.11 -				awk '/(Cell|ESS|Qual|Encry|IE: WPA)/ {print}' | \
    1.12 -				sed s/"Cell "/Cell-/ | grep -A 5 "$i"`
    1.13 -			ESSID=`echo $SCAN | cut -d '"' -f 2`
    1.14 +			SCAN=$(iwlist $WIFI_INTERFACE scan last | \
    1.15 +				awk '/(Cell|ESS|Qual|Encry|IE: WPA|WPA2)/ {print}' | \
    1.16 +				sed s/"Cell "/Cell-/ | grep -A 5 "$i")
    1.17 +			ESSID=$(echo $SCAN | cut -d '"' -f 2)
    1.18  			if echo "$SCAN" | grep -q Quality; then
    1.19 -				QUALITY=`echo $SCAN | sed 's/.*Quality=\([^ ]*\).*/\1/' | sed 's/.*Quality:\([^ ]*\).*/\1/'`
    1.20 +				QUALITY=$(echo $SCAN | sed 's/.*Quality=\([^ ]*\).*/\1/' | sed 's/.*Quality:\([^ ]*\).*/\1/')
    1.21  			else
    1.22  				QUALITY="-"
    1.23  			fi
    1.24 -			ENCRYPTION=`echo $SCAN | sed 's/.*key:\([^ ]*\).*/\1/'`
    1.25 +			ENCRYPTION=$(echo $SCAN | sed 's/.*key:\([^ ]*\).*/\1/')
    1.26  			# Check encryption type
    1.27 -			if echo "$SCAN" | grep -q WPA; then
    1.28 -				ENCRYPTION="${ENCRYPTION} (WPA)"
    1.29 +			if echo "$SCAN" | grep -q WPA*; then
    1.30 +				ENCRYPTION="WPA"
    1.31  			fi
    1.32  			# Connected or not connected...
    1.33  			if ifconfig | grep -A 1 $WIFI_INTERFACE | \
    1.34 @@ -54,7 +54,8 @@
    1.35  				status="---"
    1.36  			fi
    1.37  			echo '<tr>'
    1.38 -			echo "<td><a href=\"$SCRIPT_NAME?wifi\"><img src='$IMAGES/wireless.png' />$ESSID</a></td>"
    1.39 +			echo "<td><a href=\"$SCRIPT_NAME?wifi&select=$ESSID&keytype=$ENCRYPTION\">
    1.40 +				<img src='$IMAGES/wireless.png' />$ESSID</a></td>"
    1.41  			echo "<td>$QUALITY</td><td>$ENCRYPTION</td><td>$status $ip</td>"
    1.42  			echo '</tr>'
    1.43  		done
    1.44 @@ -78,6 +79,13 @@
    1.45  			-e s'/^STATIC=.*/STATIC="no"/'/etc/network.conf
    1.46  		/etc/init.d/network.sh start | log
    1.47  		sleep 2 ;;
    1.48 +	*\ select\ *)
    1.49 +			WIFI_KEY_TYPE="$(GET keytype)"
    1.50 +			[ "$WIFI_KEY_TYPE" == "on" ] && WIFI_KEY_TYPE=""
    1.51 +			sed -i \
    1.52 +				-e s"/^WIFI_ESSID=.*/WIFI_ESSID=\"$(GET select)\""/ \
    1.53 +				-e s"/^WIFI_KEY_TYPE=.*/WIFI_KEY_TYPE=\"$WIFI_KEY_TYPE\"/" \
    1.54 +				/etc/network.conf ;;
    1.55  	*\ hostname\ *)
    1.56  		echo $(gettext "Changed hostname:") $(GET hostname) | log
    1.57  		echo "$(GET hostname)" > /etc/hostname ;;