tazpanel rev 321

network.cgi: fix scan parsing, use any key type
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Jun 30 14:36:32 2012 +0200 (2012-06-30)
parents a66d70e402b9
children 1602cb73097e
files network.cgi
line diff
     1.1 --- a/network.cgi	Thu Jun 28 20:13:19 2012 +0100
     1.2 +++ b/network.cgi	Sat Jun 30 14:36:32 2012 +0200
     1.3 @@ -30,18 +30,16 @@
     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 '/Cell /!d;s/.*Cell \([^ ]*\).*/Cell.\1/')
     1.9  		do
    1.10 -			SCAN=$(iwlist $WIFI_INTERFACE scan last | \
    1.11 -				awk '/(Cell|ESS|Qual|Encry|IE: WPA|WPA2)/ {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 | sed "/$i/,/Cell/!d" | sed '$d')
    1.15 +			ESSID=$(echo $SCAN | sed '/ESSID/!d;s/.*ESSID:"\(.*\)"$/\1/')
    1.16  			if echo "$SCAN" | grep -q Quality; then
    1.17 -				QUALITY=$(echo $SCAN | sed 's/.*Quality=\([^ ]*\).*/\1/' | sed 's/.*Quality:\([^ ]*\).*/\1/')
    1.18 +				QUALITY=$(echo $SCAN | sed '/Quality/!d;s/.*Quality:\([^ ]*\).*/\1/')
    1.19  			else
    1.20  				QUALITY="-"
    1.21  			fi
    1.22 -			ENCRYPTION=$(echo $SCAN | sed 's/.*key:\([^ ]*\).*/\1/')
    1.23 +			ENCRYPTION=$(echo $SCAN | sed '/key:/!d;s/.*key:\([^ ]*\).*/\1/')
    1.24  			# Check encryption type
    1.25  			if echo "$SCAN" | grep -q WPA*; then
    1.26  				ENCRYPTION="WPA"
    1.27 @@ -218,11 +216,12 @@
    1.28  </div>
    1.29  $(detect_wifi_networks)
    1.30  EOT
    1.31 +		WIFI_KEY="$(GET key)"
    1.32 +		case "$(GET keytype)" in
    1.33 +		''|off)	WIFI_KEY_TYPE=none ;;
    1.34 +		*	WIFI_KEY_TYPE=any  ;;
    1.35 +		esac
    1.36  		if [ "$(GET essid)" ]; then
    1.37 -			WIFI_KEY=""
    1.38 -			WIFI_KEY_TYPE=none
    1.39 -			[ -n "$(GET key)" ] && WIFI_KEY="$(GET key)"
    1.40 -			[ -n "$(GET keytype)" ] && WIFI_KEY_TYPE="$(GET keytype)"
    1.41  			/etc/init.d/network.sh stop | log
    1.42  			sed -i \
    1.43  				-e s"/^WIFI_ESSID=.*/WIFI_ESSID=\"$(GET essid)\""/ \
    1.44 @@ -238,7 +237,6 @@
    1.45  				WIFI_KEY=""
    1.46  			fi
    1.47  			WIFI_ESSID="$(GET select)"
    1.48 -			WIFI_KEY_TYPE="$(GET keytype)"
    1.49  		fi
    1.50  	cat << EOT
    1.51  <section>