netcardconfig: show the wpasecret input box, even if password is already set
[grml-network.git] / sbin / netcardconfig
index 8561dae..f602f79 100755 (executable)
@@ -327,16 +327,17 @@ configiface() {
                           }
                   }
                   ' /etc/network/interfaces)
-          while [ -z "$WPASECRET" ] ; do
+          FIRST_RUN=0  # show the wpasecret input box at least once
+          while ( [ -z "$WPASECRET" ] || [ "$FIRST_RUN" ] ) ; do
             $DIALOG --inputbox "$MESSAGEW23 $ESSID" 15 50 "$WPASECRET" 2>"$TMP" || bailout 1
             read WPASECRET <"$TMP"
             if [ -z "$WPASECRET" ] ; then
               $DIALOG --msgbox "Sorry, empty password not allowed, please retry." 0 0 || bailout 1
             fi
+            FIRST_RUN=""
           done
 
-          # make sure backslashes inside passphrase are handled correct
-          WPASECRET=$(sed -e 's/\\/\\/g' "$TMP") && rm -r "$TMP"
+          rm -f "$TMP"
 
           case $WPA_DEV in
                hostap)
@@ -499,11 +500,11 @@ if [ -z "$WLAN" ] ; then
   WLAN_OLD=$(tail -n +3 /proc/net/wireless 2>/dev/null|awk -F: '{print $1}')
   # /proc/net/wireless does not work e.g. with iwl3945 on kernel 2.6.33 anymore
   WLAN_NEW=$(for i in /sys/class/net/* ; do ( [ -d $i/wireless ] || [ -d $i/phy80211 ] ) && basename $i ; done)
-  set -a WLAN_IWCONFIG=""
+  set -a WLAN_IWCONFIG
   for DEV in $LAN ; do
-      iwconfig $DEV 2>/dev/null 1>&2 && WLAN_IWCONFIG+="$DEV"
+    iwconfig $DEV 2>/dev/null 1>&2 && WLAN_IWCONFIG+=($DEV)
   done
-  WLAN=$(echo $WLAN_OLD $WLAN_NEW ${WLAN_IWCONFIG[*]} | sort -u)
+  WLAN=$(echo $WLAN_OLD $WLAN_NEW ${WLAN_IWCONFIG[@]} | tr ' ' '\n' | sort -u)
 fi
 
 unset LAN_DEVICES WLAN_DEVICES FIREWIRE_DEVICES NETDEVICES WLAN_IWCONFIG