diff options
author | Tom Gundersen <teg@jklm.no> | 2014-12-05 15:56:10 +0100 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2014-12-05 16:01:18 +0100 |
commit | 32bc8adcd836baff68e4d0f53b9a382f358cccf8 (patch) | |
tree | b5db45cc55b761fbfa7921b8b97f21495703633b /src/network/networkd-network.c | |
parent | 2a441c8afe7c81f74cc2ceccdf9a71301cd39d4d (diff) |
net_setup/networkd: warn if matching is done on possibly unstable ifname
Diffstat (limited to 'src/network/networkd-network.c')
-rw-r--r-- | src/network/networkd-network.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index b014a6b649..bbc6475df0 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -225,9 +225,22 @@ int network_get(Manager *manager, struct udev_device *device, udev_device_get_driver(udev_device_get_parent(device)), udev_device_get_property_value(device, "ID_NET_DRIVER"), udev_device_get_devtype(device), - ifname, false)) { - log_debug("%-*s: found matching network '%s'", IFNAMSIZ, ifname, - network->filename); + ifname)) { + const char *attr; + uint8_t name_assign_type = NET_NAME_UNKNOWN; + + if (network->match_name) { + attr = udev_device_get_sysattr_value(device, "name_assign_type"); + (void)safe_atou8(attr, &name_assign_type); + + if (name_assign_type == NET_NAME_ENUM) + log_warning("%-*s: found matching network '%s', based on potentially unstable ifname", + IFNAMSIZ, ifname, network->filename); + else + log_debug("%-*s: found matching network '%s'", IFNAMSIZ, ifname, network->filename); + } else + log_debug("%-*s: found matching network '%s'", IFNAMSIZ, ifname, network->filename); + *ret = network; return 0; } |