From: Yu Watanabe Date: Tue, 7 Dec 2021 20:35:37 +0000 (+0900) Subject: network: address: read flags from message header when IFA_FLAGS is not supported... X-Git-Tag: v250-rc1~29^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8ed68422e1bafc84afe524bc5020d343bc6163ca;p=thirdparty%2Fsystemd.git network: address: read flags from message header when IFA_FLAGS is not supported by kernel Follow-up for 0828a38605975b68c14c9194a1ee2c5c2ff7038f. Fixes #21670. --- diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index 826b061f24e..6eea4ff0bda 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -1314,6 +1314,14 @@ int manager_rtnl_process_address(sd_netlink *rtnl, sd_netlink_message *message, } r = sd_netlink_message_read_u32(message, IFA_FLAGS, &tmp->flags); + if (r == -ENODATA) { + unsigned char flags; + + /* For old kernels. */ + r = sd_rtnl_message_addr_get_flags(message, &flags); + if (r >= 0) + tmp->flags = flags; + } if (r < 0) { log_link_warning_errno(link, r, "rtnl: received address message without flags, ignoring: %m"); return 0;