X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=sbin%2Fnetcardconfig;h=d9440e6096f34ee1e533e8c77b134347d1ae3d53;hb=f512c908edc331ca6a87bb83a8ae06e630d2e040;hp=cffa86ab458c1aa02ede58976da10dbf753589c0;hpb=1d6c1797168e3435781dbf96f999b731ba922da7;p=grml-network.git diff --git a/sbin/netcardconfig b/sbin/netcardconfig index cffa86a..d9440e6 100755 --- a/sbin/netcardconfig +++ b/sbin/netcardconfig @@ -28,58 +28,58 @@ bailout() { writeiwline() { IWOURLINE="" if [ -n "$NWID" ]; then - IWOURLINE="$IWOURLINE wireless-nwid $NWID\n" + IWOURLINE="$IWOURLINE\twireless-nwid $NWID\n" fi if [ -n "$MODE" ]; then - IWOURLINE="$IWOURLINE wireless-mode $MODE\n" + IWOURLINE="$IWOURLINE\twireless-mode $MODE\n" fi if [ -n "$CHANNEL" ]; then - IWOURLINE="$IWOURLINE wireless-channel $CHANNEL\n" + IWOURLINE="$IWOURLINE\twireless-channel $CHANNEL\n" fi if [ -n "$FREQ" ]; then - IWOURLINE="$IWOURLINE wireless-freq $FREQ\n" + IWOURLINE="$IWOURLINE\twireless-freq $FREQ\n" fi if [ -n "$KEY" ]; then if [ "$PUBKEY" -eq 1 ]; then # Store the key in interfaces in wireless-key - IWOURLINE="$IWOURLINE wireless-key $KEY\n" + IWOURLINE="$IWOURLINE\twireless-key $KEY\n" else # Store the key in /etc/network/wep.$DV which is root readable only # Use pre-up in interfaces to read and set it - echo "$KEY" > "/etc/network/wep.$DV" && chmod 600 "/etc/network/wep.$DV" && IWOURLINE="$IWOURLINE pre-up KEY=\$(cat /etc/network/wep.$DV) && iwconfig $DV key \$KEY\n" + echo "$KEY" > "/etc/network/wep.$DV" && chmod 600 "/etc/network/wep.$DV" && IWOURLINE="$IWOURLINE\tpre-up KEY=\$(cat /etc/network/wep.$DV) && iwconfig $DV key \$KEY\n" fi fi for mod in /sys/module/rt2??0/ ; do if [ -d "$mod" ]; then - IWPREUPLINE="$IWPREUPLINE pre-up /sbin/ip link set $DV up\n" + IWPREUPLINE="$IWPREUPLINE\tpre-up /sbin/ip link set $DV up\n" break fi done if [ -n "$IWCONFIG" ]; then - IWPREUPLINE="$IWPREUPLINE iwconfig $IWCONFIG\n" + IWPREUPLINE="$IWPREUPLINE\tiwconfig $IWCONFIG\n" fi if [ -n "$IWSPY" ]; then - IWPREUPLINE="$IWPREUPLINE iwspy $IWSPY\n" + IWPREUPLINE="$IWPREUPLINE\tiwspy $IWSPY\n" fi if [ -n "$IWPRIV" ]; then - IWPREUPLINE="$IWPREUPLINE iwpriv $IWPRIV\n" + IWPREUPLINE="$IWPREUPLINE\tiwpriv $IWPRIV\n" fi # execute ESSID last, but make sure that it is written as first option if [ -n "$ESSID" ]; then - IWOURLINE="$IWOURLINE wireless-essid $ESSID\n" + IWOURLINE="$IWOURLINE\twireless-essid $ESSID\n" fi if [ "$WPAON" -gt 0 ]; then - IWOURLINE="$IWOURLINE wpa-ssid $ESSID\n wpa-psk $WPASECRET\n" + IWOURLINE="$IWOURLINE\twpa-ssid $ESSID\n\twpa-psk $WPASECRET\n" fi IWOURLINE="$IWOURLINE $IWPREUPLINE" @@ -433,7 +433,11 @@ configiface() { $DIALOG --inputbox "$MESSAGEW20 $DEVICENAME $MESSAGEW21" 15 50 "$IWPRIV" 2>"$TMP" || bailout 1 read -r IWPRIV <"$TMP" ; rm -f "$TMP" - writeiwline + unset IWOURLINE + if [ "$iswireless" = "1" ] ; then + writeiwline + fi + fi # Setup wireless options? # Configure VLAN on this interface? @@ -459,7 +463,14 @@ configiface() { {if(!(found+lastblank)){print}} END{print "iface '"$DV"' inet dhcp";if("'"$PDV"'"!=""){print "\tvlan-raw-device '"$PDV"'"}}' \ /etc/network/interfaces >"$TMP" - echo -e "$IWOURLINE" >> "$TMP" + case "$DV" in + "$WLAN") + # write wireless configuration only when we are dealing with a wireless device, + # it might be set from a previous configuration run of a wireless device + # while the currently configured network device isn't a wireless device + echo -e "$IWOURLINE" >> "$TMP" + ;; + esac #echo -e "\n\n" >> $TMP cat "$TMP" >/etc/network/interfaces rm -f "$TMP" @@ -501,6 +512,17 @@ configiface() { fi if [ -w /etc/network/interfaces ]; then + case "$DV" in + "$WLAN") + ;; + *) + # ensure we don't leak the IWOURLINE into the + # following awk command line, if we are configuring + # a device without wireless capabilities + unset IWOURLINE + ;; + esac + awk '/iface/{if(/'"$DV"'/){found=1}else{found=0}} {if(!found){print}} END{print "\niface '"$DV"' inet static\n\taddress '"$IP"'\n\tnetmask '"$NM"'\n\tnetwork '"${IP%.*}.0"'";if("'"$BC"'"!=""){print "\tbroadcast '"$BC"'"};if("'"$DG"'"!=""){print "\tgateway '"$DG"'"};if("'"$NS"'"!=""){print "\tdns-nameservers '"$NS"'"};if("'"$PDV"'"!=""){print "\tvlan-raw-device '"$PDV"'"};if("'"$IWOURLINE"'"!=""){print "'"$IWOURLINE"'"};print "\n"}' \