X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=sbin%2Fnetcardconfig;h=87e8c68ffd299b1e0b70a3769dac86643d0d852c;hb=refs%2Fheads%2Fmru%2Ffixup;hp=03784a9ab9cbd6aa115ff1b5c5864d09b49640a6;hpb=bb0940fb98d00d4234bbb95656699ae503f10707;p=grml-network.git diff --git a/sbin/netcardconfig b/sbin/netcardconfig index 03784a9..87e8c68 100755 --- a/sbin/netcardconfig +++ b/sbin/netcardconfig @@ -15,7 +15,7 @@ LANGUAGE=C LANG=C export PATH LANGUAGE LANG . /etc/grml/script-functions -check4root +check4root || exit 1 TMP=$(mktemp) @@ -156,6 +156,8 @@ configiface() { DEVICE=${NETDEVICES[$DV]} device2props DV=$DEVICENAME + ifdown $DV + sleep 3 # wireless config WLDEVICE="$(LANG=C LC_MESSAGEWS=C iwconfig $DV 2>/dev/null | awk '/802\.11|READY|ESSID/{print $1}')" WLDEVICECOUNT="$(LANG=C LC_MESSAGEWS=C iwconfig $DV 2>/dev/null | wc -l)" @@ -325,7 +327,13 @@ configiface() { } } ' /etc/network/interfaces) - $DIALOG --inputbox "$MESSAGEW23 $ESSID" 15 50 "$WPASECRET" 2>"$TMP" || bailout 1 + while [ -z "$WPASECRET" ] ; 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 + done # make sure backslashes inside passphrase are handled correct WPASECRET=$(sed -e 's/\\/\\/g' "$TMP") && rm -r "$TMP" @@ -389,8 +397,8 @@ configiface() { /netmask/{if(found){netmask=$NF}} /broadcast/{if(found){broadcast=$NF}} /gateway/{if(found){gateway=$NF}} - /dns-nameservers/{if(found){dns-nameservers=$NF}} - END{print address" "netmask" "broadcast" "gateway" "dns-nameservers}' /etc/network/interfaces >"$TMP" + /dns-nameservers/{if(found){dnsnameservers=$NF}} + END{print address" "netmask" "broadcast" "gateway" "dnsnameservers}' /etc/network/interfaces >"$TMP" read IP NM BC DG <"$TMP" rm -f "$TMP" fi @@ -490,11 +498,15 @@ fi 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 ] && basename $i ; done) - WLAN=$(echo $WLAN_OLD $WLAN_NEW | sort -u) + WLAN_NEW=$(for i in /sys/class/net/* ; do ( [ -d $i/wireless ] || [ -d $i/phy80211 ] ) && basename $i ; done) + set -a WLAN_IWCONFIG + for DEV in $LAN ; do + iwconfig $DEV 2>/dev/null 1>&2 && WLAN_IWCONFIG+=($DEV) + done + WLAN=$(echo $WLAN_OLD $WLAN_NEW ${WLAN_IWCONFIG[@]} | tr ' ' '\n' | sort -u) fi -unset LAN_DEVICES WLAN_DEVICES FIREWIRE_DEVICES NETDEVICES +unset LAN_DEVICES WLAN_DEVICES FIREWIRE_DEVICES NETDEVICES WLAN_IWCONFIG while read dev mac; do #echo "Making NETDEVICES $NETDEVICESCOUNT $dev" @@ -572,8 +584,6 @@ while (true); do IFACEDONE="" while [ -n "$DV" -a -z "$IFACEDONE" ]; do configiface - ifdown $DV - sleep 3 if ! ifup $DV; then $DIALOG --yesno "$MESSAGE14" 15 50 || IFACEDONE="DONE" else