From 2924a6c927cee6ce3f9677991b5b4ecbd4e9a12a Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 23 Jul 2025 22:18:17 +0900 Subject: [PATCH 1/3] network/json: ignore -ENODATA and any failures from sd_dhcp_lease_get_sip() Addresses https://github.com/systemd/systemd/pull/38269#discussion_r2225375899. Follow-up for 238c427aa9c4bc28c1840e550551a984b33d44da. --- src/network/networkd-json.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/network/networkd-json.c b/src/network/networkd-json.c index aa65379acc..d7bea039fd 100644 --- a/src/network/networkd-json.c +++ b/src/network/networkd-json.c @@ -846,14 +846,11 @@ static int sip_append_json(Link *link, sd_json_variant **v) { union in_addr_union s; int n_sip; - n_sip = sd_dhcp_lease_get_sip(link->dhcp_lease, &sip); - if (n_sip <= 0) - return 0; - r = sd_dhcp_lease_get_server_identifier(link->dhcp_lease, &s.in); if (r < 0) return r; + n_sip = sd_dhcp_lease_get_sip(link->dhcp_lease, &sip); for (int i = 0; i < n_sip; i++) { r = server_append_json_one_addr(AF_INET, &(union in_addr_union) { .in = sip[i], }, From 5489a9c4095b12899616d5bb0481f32533782548 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 23 Jul 2025 22:21:03 +0900 Subject: [PATCH 2/3] network/state-file: ignore any errors in sd_dhcp6_lease_get_dnr() Follow-up for 168ad243cc7d5632e24dfc75f28d8e25c2076f83. For consistency with other places. --- src/network/networkd-state-file.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/network/networkd-state-file.c b/src/network/networkd-state-file.c index 21bf4b1b34..620ffbfb14 100644 --- a/src/network/networkd-state-file.c +++ b/src/network/networkd-state-file.c @@ -643,10 +643,7 @@ static void serialize_resolvers( int r; r = sd_dhcp6_lease_get_dnr(lease6, &resolvers); - if (r < 0 && r != -ENODATA) - log_warning_errno(r, "Failed to get DNR from DHCPv6 lease, ignoring: %m"); - - if (r > 0) { + if (r >= 0) { r = dns_resolvers_to_dot_strv(resolvers, r, &names); if (r < 0) return (void) log_warning_errno(r, "Failed to get DoT servers from DHCPv6 DNR, ignoring: %m"); From 5bd37b352c5b33a3f1d3420f163952fd250d6cdc Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 23 Jul 2025 22:21:31 +0900 Subject: [PATCH 3/3] network/state-file: coding style fixlet Follow-up for 168ad243cc7d5632e24dfc75f28d8e25c2076f83. --- src/network/networkd-state-file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/networkd-state-file.c b/src/network/networkd-state-file.c index 620ffbfb14..5f904d59cd 100644 --- a/src/network/networkd-state-file.c +++ b/src/network/networkd-state-file.c @@ -153,7 +153,7 @@ static int link_put_dns(Link *link, OrderedSet **s) { sd_dns_resolver *resolvers; r = sd_dhcp6_lease_get_dnr(link->dhcp6_lease, &resolvers); - if (r >= 0 ) { + if (r >= 0) { struct in_addr_full **dot_servers; size_t n = 0; CLEANUP_ARRAY(dot_servers, n, in_addr_full_array_free);