tazpanel 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 |
files | network.cgi |
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 ;;