diff --git a/package/yast2-network.changes b/package/yast2-network.changes index 6edd159d7..ab85a73d3 100644 --- a/package/yast2-network.changes +++ b/package/yast2-network.changes @@ -2,6 +2,7 @@ Thu Nov 6 10:48:55 UTC 2014 - mfilka@suse.com - adopted to new device type detection API provided by yast2 +- fixed problem with not matching udev rule (bnc#551310) - 2.17.199.1 ------------------------------------------------------------------- diff --git a/src/modules/LanItems.ycp b/src/modules/LanItems.ycp index 39280c5ff..a56a44fb4 100644 --- a/src/modules/LanItems.ycp +++ b/src/modules/LanItems.ycp @@ -289,9 +289,27 @@ boolean ReadUdevDriverRules(){ return true; } +list getUdevFallback(){ + list udev_rules = getCurrentItem()["udev", "net"]:[]; + if (size(udev_rules)==0){ + udev_rules = [ + "SUBSYSTEM==\"net\"", + "ACTION==\"add\"", + "DRIVERS==\"?*\"", + sformat("ATTR{address}==\"%1\"", getCurrentItem()["hwinfo", "mac"]:""), + "ATTR{type}==\"1\"", + "KERNEL==\"eth*\"", + sformat("NAME=\"%1\"", getCurrentItem()["ifcfg"]:"") + ]; + y2error("No Udev rules found, create new as fallback: %1", udev_rules); + } + return udev_rules; +} + global string GetItemUdev(string key){ string value=""; - foreach(string row, Items[current, "udev", "net"]:[], { + + foreach(string row, getUdevFallback(), { if(issubstring(row, key)){ list items = filter(string s, splitstring(row, "="), { return (size(s)>0); });