From: Harald Hoyer Date: Fri, 6 Jul 2012 10:57:17 +0000 (+0200) Subject: network/ifname-genrules.sh: check for multiple ifname= lines X-Git-Tag: 021~61 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f1e7add2bf74b836bc29d20df2e4e53638e49936;p=thirdparty%2Fdracut.git network/ifname-genrules.sh: check for multiple ifname= lines --- diff --git a/modules.d/40network/ifname-genrules.sh b/modules.d/40network/ifname-genrules.sh index d5f8b0f7f..3cf4be76b 100755 --- a/modules.d/40network/ifname-genrules.sh +++ b/modules.d/40network/ifname-genrules.sh @@ -12,7 +12,23 @@ command -v parse_ifname_opts >/dev/null || . /lib/net-lib.sh { for p in $(getargs ifname=); do parse_ifname_opts $p + + if [ -f /tmp/ifname-$ifname_mac ]; then + read oldif < /tmp/ifname-$ifname_mac + fi + if [ -f /tmp/ifname-$ifname_if ]; then + read oldmac < /tmp/ifname-$ifname_if + fi + if [ -n "$oldif" -a -n "$oldmac" -a "$oldif" = "$ifname_if" -a "$oldmac" = "$ifname_mac" ]; then + # skip same ifname= declaration + continue + fi + + [ -n "$oldif" ] && warn "Multiple interface names specified for MAC $ifname_mac: $oldif" + [ -n "$oldmac" ] && warn "Multiple MAC specified for $ifname_if: $oldmac" + printf 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="%s", ATTR{type}=="1", NAME="%s"\n' "$ifname_mac" "$ifname_if" + echo $ifname_if > /tmp/ifname-$ifname_mac + echo $ifname_mac > /tmp/ifname-$ifname_if done - } >> /etc/udev/rules.d/80-ifname.rules