summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2021-07-13 20:02:44 +0900
committerLuca Boccassi <luca.boccassi@gmail.com>2021-07-14 00:40:47 +0100
commit54d1fdb244ba137dbb0bd97836bb63fd215e6bf1 (patch)
treed6973816182a0a6bddd36d67a86db7f1b598bdfd /src
parentbedc15706e213a806b18824d1bcb66d381fa2a06 (diff)
downloadsystemd-54d1fdb244ba137dbb0bd97836bb63fd215e6bf1.tar.gz
network: update interface name stored in various network engines
Diffstat (limited to 'src')
-rw-r--r--src/network/networkd-link.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index d38f5cd7cf..a6f8174b80 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -2201,6 +2201,55 @@ static int link_update_name(Link *link, sd_netlink_message *message) {
if (r < 0)
return log_link_debug_errno(link, r, "Failed to manage link by its new name: %m");
+ if (link->dhcp_client) {
+ r = sd_dhcp_client_set_ifname(link->dhcp_client, link->ifname);
+ if (r < 0)
+ return log_link_debug_errno(link, r, "Failed to update interface name in DHCP client: %m");
+ }
+
+ if (link->dhcp6_client) {
+ r = sd_dhcp6_client_set_ifname(link->dhcp6_client, link->ifname);
+ if (r < 0)
+ return log_link_debug_errno(link, r, "Failed to update interface name in DHCP6 client: %m");
+ }
+
+ if (link->ndisc) {
+ r = sd_ndisc_set_ifname(link->ndisc, link->ifname);
+ if (r < 0)
+ return log_link_debug_errno(link, r, "Failed to update interface name in NDisc: %m");
+ }
+
+ if (link->dhcp_server) {
+ r = sd_dhcp_server_set_ifname(link->dhcp_server, link->ifname);
+ if (r < 0)
+ return log_link_debug_errno(link, r, "Failed to update interface name in DHCP server: %m");
+ }
+
+ if (link->radv) {
+ r = sd_radv_set_ifname(link->radv, link->ifname);
+ if (r < 0)
+ return log_link_debug_errno(link, r, "Failed to update interface name in Router Advertisement: %m");
+ }
+
+ if (link->lldp) {
+ r = sd_lldp_set_ifname(link->lldp, link->ifname);
+ if (r < 0)
+ return log_link_debug_errno(link, r, "Failed to update interface name in LLDP: %m");
+ }
+
+ if (link->ipv4ll) {
+ r = sd_ipv4ll_set_ifname(link->ipv4ll, link->ifname);
+ if (r < 0)
+ return log_link_debug_errno(link, r, "Failed to update interface name in IPv4LL client: %m");
+ }
+
+ Address *a;
+ SET_FOREACH(a, link->addresses_ipv4acd) {
+ r = sd_ipv4acd_set_ifname(a->acd, link->ifname);
+ if (r < 0)
+ return log_link_debug_errno(link, r, "Failed to update interface name in IPv4ACD client: %m");
+ }
+
return 0;
}