summaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
Diffstat (limited to 'src/network')
-rw-r--r--src/network/networkd-link.c5
-rw-r--r--src/network/networkd-manager.c9
2 files changed, 8 insertions, 6 deletions
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index 444af8f6db..7f692d1f9b 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -491,7 +491,8 @@ static void dhcp_handler(sd_dhcp_client *client, int event, void *userdata) {
if (event == DHCP_EVENT_IP_CHANGE || event == DHCP_EVENT_IP_ACQUIRE) {
_cleanup_address_free_ Address *addr = NULL;
_cleanup_route_free_ Route *rt = NULL;
- struct in_addr **nameservers;
+ struct in_addr *nameservers;
+ size_t nameservers_size;
log_struct_link(LOG_INFO, link,
"MESSAGE=%s: DHCPv4 address %u.%u.%u.%u/%u via %u.%u.%u.%u",
@@ -535,7 +536,7 @@ static void dhcp_handler(sd_dhcp_client *client, int event, void *userdata) {
rt = NULL;
if (link->network->dhcp_dns) {
- r = sd_dhcp_client_get_dns(client, &nameservers);
+ r = sd_dhcp_client_get_dns(client, &nameservers, &nameservers_size);
if (r >= 0) {
r = manager_update_resolv_conf(link->manager);
if (r < 0)
diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c
index ca781e2bb4..3b542149c0 100644
--- a/src/network/networkd-manager.c
+++ b/src/network/networkd-manager.c
@@ -338,14 +338,15 @@ int manager_update_resolv_conf(Manager *m) {
HASHMAP_FOREACH(link, m->links, i) {
if (link->dhcp) {
- struct in_addr **nameservers;
+ struct in_addr *nameservers;
+ size_t nameservers_size;
- r = sd_dhcp_client_get_dns(link->dhcp, &nameservers);
+ r = sd_dhcp_client_get_dns(link->dhcp, &nameservers, &nameservers_size);
if (r >= 0) {
unsigned j;
- for (j = 0; nameservers[j]; j++)
- append_dns(f, nameservers[j], AF_INET, &count);
+ for (j = 0; j < nameservers_size; j++)
+ append_dns(f, &nameservers[j], AF_INET, &count);
}
}
}