]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: always drop configs when interface is renamed
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 4 Mar 2019 03:01:26 +0000 (12:01 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 5 Mar 2019 01:33:27 +0000 (10:33 +0900)
Before the renaming, wrong .network file may be assigned to the link.
So, let's always drop link configuration.

src/network/networkd-link.c

index 1738a0d944ab1d6df44631a48087642fb20402ed..a5d4ede3744268ff6043cdea2ae5f0c99a3f51a2 100644 (file)
@@ -3767,20 +3767,14 @@ int link_update(Link *link, sd_netlink_message *m) {
 
         r = sd_netlink_message_read_string(m, IFLA_IFNAME, &ifname);
         if (r >= 0 && !streq(ifname, link->ifname)) {
-                log_link_info(link, "Interface name change detected, %s has been renamed to %s.", link->ifname, ifname);
+                Manager *manager = link->manager;
 
-                if (link->state == LINK_STATE_PENDING) {
-                        r = free_and_strdup(&link->ifname, ifname);
-                        if (r < 0)
-                                return r;
-                } else {
-                        Manager *manager = link->manager;
+                log_link_info(link, "Interface name change detected, %s has been renamed to %s.", link->ifname, ifname);
 
-                        link_drop(link);
-                        r = link_add(manager, m, &link);
-                        if (r < 0)
-                                return r;
-                }
+                link_drop(link);
+                r = link_add(manager, m, &link);
+                if (r < 0)
+                        return r;
         }
 
         r = sd_netlink_message_read_u32(m, IFLA_MTU, &mtu);