networkd: link - track interface renames

This commit is contained in:
Tom Gundersen 2014-04-19 20:39:17 +02:00
parent d4ef4f46cf
commit b8941f74c8
1 changed files with 12 additions and 0 deletions

View File

@ -1487,14 +1487,26 @@ int link_add(Manager *m, sd_rtnl_message *message, Link **ret) {
int link_update(Link *link, sd_rtnl_message *m) {
unsigned flags;
struct ether_addr mac;
char *ifname;
int r;
assert(link);
assert(link->ifname);
assert(m);
if (link->state == LINK_STATE_FAILED)
return 0;
r = sd_rtnl_message_read_string(m, IFLA_IFNAME, &ifname);
if (r >= 0 && !streq(ifname, link->ifname)) {
log_info_link(link, "renamed to %s", ifname);
free(link->ifname);
link->ifname = strdup(ifname);
if (!link->ifname)
return -ENOMEM;
}
if (!link->original_mtu) {
r = sd_rtnl_message_read_u16(m, IFLA_MTU, &link->original_mtu);
if (r >= 0)