networkd: link - track interface renames
This commit is contained in:
parent
d4ef4f46cf
commit
b8941f74c8
|
@ -1487,14 +1487,26 @@ int link_add(Manager *m, sd_rtnl_message *message, Link **ret) {
|
||||||
int link_update(Link *link, sd_rtnl_message *m) {
|
int link_update(Link *link, sd_rtnl_message *m) {
|
||||||
unsigned flags;
|
unsigned flags;
|
||||||
struct ether_addr mac;
|
struct ether_addr mac;
|
||||||
|
char *ifname;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
assert(link);
|
assert(link);
|
||||||
|
assert(link->ifname);
|
||||||
assert(m);
|
assert(m);
|
||||||
|
|
||||||
if (link->state == LINK_STATE_FAILED)
|
if (link->state == LINK_STATE_FAILED)
|
||||||
return 0;
|
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) {
|
if (!link->original_mtu) {
|
||||||
r = sd_rtnl_message_read_u16(m, IFLA_MTU, &link->original_mtu);
|
r = sd_rtnl_message_read_u16(m, IFLA_MTU, &link->original_mtu);
|
||||||
if (r >= 0)
|
if (r >= 0)
|
||||||
|
|
Loading…
Reference in a new issue