network: address: read flags from message header when IFA_FLAGS is not supported by kernel

Follow-up for 0828a38605.

Fixes #21670.
This commit is contained in:
Yu Watanabe
2021-12-08 05:40:09 +09:00
parent f14a6e7f48
commit 8ed68422e1
+8
View File
@@ -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;