X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fresolve%2Fresolved-link.c;h=1b175c8121a7adc9f4bb339c211cc1adec5ce3c9;hb=322345fdb9865ef2477fba8e4bdde0e1183ef505;hp=61b112cb05091213553cf95919c1f1211e341701;hpb=e1c959948c0e31d6997bcdfbabfbd077784b2bae;p=elogind.git diff --git a/src/resolve/resolved-link.c b/src/resolve/resolved-link.c index 61b112cb0..1b175c812 100644 --- a/src/resolve/resolved-link.c +++ b/src/resolve/resolved-link.c @@ -91,20 +91,15 @@ int link_update_rtnl(Link *l, sd_rtnl_message *m) { if (r < 0) return r; - r = sd_rtnl_message_read_u32(m, IFLA_MTU, &l->mtu); - if (r < 0) - return r; - + sd_rtnl_message_read_u32(m, IFLA_MTU, &l->mtu); return 0; } static int update_dhcp_dns_servers(Link *l) { _cleanup_dhcp_lease_unref_ sd_dhcp_lease *lease = NULL; - struct in_addr *nameservers = NULL; + const struct in_addr *nameservers = NULL; DnsServer *s, *nx; - unsigned i; - size_t n; - int r; + int r, n, i; assert(l); @@ -119,9 +114,11 @@ static int update_dhcp_dns_servers(Link *l) { LIST_FOREACH(servers, s, l->dhcp_dns_servers) s->marked = true; - r = sd_dhcp_lease_get_dns(lease, &nameservers, &n); - if (r < 0) + n = sd_dhcp_lease_get_dns(lease, &nameservers); + if (n < 0) { + r = n; goto clear; + } for (i = 0; i < n; i++) { union in_addr_union a = { .in = nameservers[i] }; @@ -153,18 +150,18 @@ static int update_link_dns_servers(Link *l) { _cleanup_free_ struct in_addr *nameservers = NULL; _cleanup_free_ struct in6_addr *nameservers6 = NULL; DnsServer *s, *nx; - unsigned i; - size_t n; - int r; + int r, n, i; assert(l); LIST_FOREACH(servers, s, l->link_dns_servers) s->marked = true; - r = sd_network_get_dns(l->ifindex, &nameservers, &n); - if (r < 0) + n = sd_network_get_dns(l->ifindex, &nameservers); + if (n < 0) { + r = n; goto clear; + } for (i = 0; i < n; i++) { union in_addr_union a = { .in = nameservers[i] }; @@ -179,9 +176,11 @@ static int update_link_dns_servers(Link *l) { } } - r = sd_network_get_dns6(l->ifindex, &nameservers6, &n); - if (r < 0) + n = sd_network_get_dns6(l->ifindex, &nameservers6); + if (n < 0) { + r = n; goto clear; + } for (i = 0; i < n; i++) { union in_addr_union a = { .in6 = nameservers6[i] };