Merge pull request #3304 from tomty89/master
[networkd] ndisc DHCPv6 triggering fixes
This commit is contained in:
@@ -194,12 +194,6 @@ int dhcp6_request_address(Link *link) {
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (running) {
|
||||
r = sd_dhcp6_client_start(link->dhcp6_client);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -157,6 +157,10 @@ static void ndisc_router_handler(sd_ndisc *nd, uint8_t flags, const struct in6_a
|
||||
if (flags & ND_RA_FLAG_MANAGED)
|
||||
dhcp6_request_address(link);
|
||||
|
||||
r = sd_dhcp6_client_set_local_address(link->dhcp6_client, &link->ipv6ll_address);
|
||||
if (r < 0 && r != -EBUSY)
|
||||
return log_link_warning_errno(link, r, "Could not set IPv6LL address in DHCP client: %m");
|
||||
|
||||
r = sd_dhcp6_client_start(link->dhcp6_client);
|
||||
if (r < 0 && r != -EBUSY)
|
||||
log_link_warning_errno(link, r, "Starting DHCPv6 client on NDisc request failed: %m");
|
||||
@@ -203,6 +207,10 @@ static void ndisc_handler(sd_ndisc *nd, int event, void *userdata) {
|
||||
case SD_NDISC_EVENT_TIMEOUT:
|
||||
dhcp6_request_address(link);
|
||||
|
||||
r = sd_dhcp6_client_set_local_address(link->dhcp6_client, &link->ipv6ll_address);
|
||||
if (r < 0 && r != -EBUSY)
|
||||
return log_link_warning_errno(link, r, "Could not set IPv6LL address in DHCP client: %m");
|
||||
|
||||
r = sd_dhcp6_client_start(link->dhcp6_client);
|
||||
if (r < 0 && r != -EBUSY)
|
||||
log_link_warning_errno(link, r, "Starting DHCPv6 client after NDisc timeout failed: %m");
|
||||
|
||||
Reference in New Issue
Block a user