don't overwrite ifname=
authorMarian Ganisin <mganisin@redhat.com>
Fri, 22 Apr 2011 12:48:36 +0000 (08:48 -0400)
committerHarald Hoyer <harald@redhat.com>
Mon, 2 May 2011 09:28:29 +0000 (11:28 +0200)
[Harald Hoyer <harald@redhat.com>: replaced grep with strstr]
[Harald Hoyer <harald@redhat.com>: handle multiple ifname= arguments]

modules.d/40network/parse-ip-opts.sh

index d7b7f37..4c3d0c2 100755 (executable)
@@ -54,15 +54,21 @@ fi
 if [ "ibft" = "$(getarg ip=)" ]; then
     modprobe iscsi_ibft
     num=0
-    (   
+    (
        for iface in /sys/firmware/ibft/ethernet*; do
            [ -e ${iface}/mac ] || continue
             ifname_mac=$(read a < ${iface}/mac; echo $a)
            [ -z "$ifname_mac" ] && continue
-            ifname_if=ibft$num
-           num=$(( $num + 1 ))
-           echo "ifname=$ifname_if:$ifname_mac"
-           dev=$ifname_if
+            for ifname in $(getargs ifname=); do
+               if strstr "$ifname" "$ifname_mac"; then
+                   dev=${ifname%%:*}
+               else
+                   ifname_if=ibft$num
+                   num=$(( $num + 1 ))
+                   echo "ifname=$ifname_if:$ifname_mac"
+                   dev=$ifname_if
+               fi
+           done
 
            dhcp=$(read a < ${iface}/dhcp; echo $a)
            if [ -n "$dhcp" ]; then