return r;
n_dnr = sd_dhcp_lease_get_dnr(link->dhcp_lease, &dnr);
- if (n_dnr < 0)
- return 0;
-
- FOREACH_ARRAY(res, dnr, n_dnr) {
- r = dnr_append_json_one(link,
- res,
- NETWORK_CONFIG_SOURCE_DHCP4,
- &s,
- &array);
- if (r < 0)
- return r;
- }
+ if (n_dnr > 0)
+ FOREACH_ARRAY(res, dnr, n_dnr) {
+ r = dnr_append_json_one(link,
+ res,
+ NETWORK_CONFIG_SOURCE_DHCP4,
+ &s,
+ &array);
+ if (r < 0)
+ return r;
+ }
}
if (link->dhcp6_lease && link_get_use_dnr(link, NETWORK_CONFIG_SOURCE_DHCP6)) {
return r;
n_dnr = sd_dhcp6_lease_get_dnr(link->dhcp6_lease, &dnr);
- if (n_dnr < 0)
- return 0;
-
- FOREACH_ARRAY(res, dnr, n_dnr) {
- r = dnr_append_json_one(link,
- res,
- NETWORK_CONFIG_SOURCE_DHCP6,
- &s,
- &array);
- if (r < 0)
- return r;
- }
+ if (n_dnr > 0)
+ FOREACH_ARRAY(res, dnr, n_dnr) {
+ r = dnr_append_json_one(link,
+ res,
+ NETWORK_CONFIG_SOURCE_DHCP6,
+ &s,
+ &array);
+ if (r < 0)
+ return r;
+ }
}
if (link_get_use_dnr(link, NETWORK_CONFIG_SOURCE_NDISC)) {
int r;
r = sd_dhcp_lease_get_dnr(lease, &resolvers);
- if (r < 0)
- return (void) log_debug_errno(r, "Failed to get DNR from DHCP lease, ignoring: %m");
+ if (r < 0 && r != -ENODATA)
+ log_warning_errno(r, "Failed to get DNR from DHCP lease, ignoring: %m");
- r = dns_resolvers_to_dot_strv(resolvers, r, &names);
- if (r < 0)
- return (void) log_warning_errno(r, "Failed to get DoT servers from DHCP DNR, ignoring: %m");
- if (r > 0)
- fputstrv(f, names, NULL, space);
+ 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 DHCP DNR, ignoring: %m");
+ if (r > 0)
+ fputstrv(f, names, NULL, space);
+ }
}
if (lease6 && conditional6) {
int r;
r = sd_dhcp6_lease_get_dnr(lease6, &resolvers);
- if (r < 0)
- return (void) log_debug_errno(r, "Failed to get DNR from DHCPv6 lease, ignoring: %m");
+ if (r < 0 && r != -ENODATA)
+ log_warning_errno(r, "Failed to get DNR from DHCPv6 lease, ignoring: %m");
- 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");
- if (r > 0)
- fputstrv(f, names, NULL, space);
+ 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");
+ if (r > 0)
+ fputstrv(f, names, NULL, space);
+ }
}
if (lvalue)