network: dhcp6: change link state into "configuring" only when a new address or route will be assigned
This commit is contained in:
@@ -281,6 +281,8 @@ static int dhcp6_set_pd_route(Link *link, const union in_addr_union *prefix, con
|
||||
r = route_configure(route, link, dhcp6_pd_route_handler, &ret);
|
||||
if (r < 0)
|
||||
return log_link_error_errno(link, r, "Failed to set DHCPv6 prefix route: %m");
|
||||
if (r > 0)
|
||||
link->dhcp6_pd_route_configured = false;
|
||||
|
||||
link->dhcp6_pd_route_messages++;
|
||||
|
||||
@@ -394,6 +396,8 @@ static int dhcp6_set_pd_address(
|
||||
r = address_configure(address, link, dhcp6_pd_address_handler, &ret);
|
||||
if (r < 0)
|
||||
return log_link_error_errno(link, r, "Failed to set DHCPv6 delegated prefix address: %m");
|
||||
if (r > 0)
|
||||
link->dhcp6_pd_address_configured = false;
|
||||
|
||||
link->dhcp6_pd_address_messages++;
|
||||
|
||||
@@ -576,8 +580,6 @@ static int dhcp6_pd_prepare(Link *link) {
|
||||
if (!link_dhcp6_pd_is_enabled(link))
|
||||
return 0;
|
||||
|
||||
link->dhcp6_pd_address_configured = false;
|
||||
link->dhcp6_pd_route_configured = false;
|
||||
link->dhcp6_pd_prefixes_assigned = true;
|
||||
|
||||
while ((address = set_steal_first(link->dhcp6_pd_addresses))) {
|
||||
@@ -816,6 +818,8 @@ static int dhcp6_set_unreachable_route(Link *link, const union in_addr_union *ad
|
||||
if (r < 0)
|
||||
return log_link_error_errno(link, r, "Failed to set unreachable route for DHCPv6 delegated subnet %s/%u: %m",
|
||||
strna(buf), prefixlen);
|
||||
if (r > 0)
|
||||
link->dhcp6_route_configured = false;
|
||||
|
||||
link->dhcp6_route_messages++;
|
||||
|
||||
@@ -1038,6 +1042,8 @@ static int dhcp6_update_address(
|
||||
if (r < 0)
|
||||
return log_link_error_errno(link, r, "Failed to set DHCPv6 address %s/%u: %m",
|
||||
strnull(buffer), addr->prefixlen);
|
||||
if (r > 0)
|
||||
link->dhcp6_address_configured = false;
|
||||
|
||||
link->dhcp6_address_messages++;
|
||||
|
||||
@@ -1103,9 +1109,6 @@ static int dhcp6_lease_ip_acquired(sd_dhcp6_client *client, Link *link) {
|
||||
Route *rt;
|
||||
int r;
|
||||
|
||||
link->dhcp6_address_configured = false;
|
||||
link->dhcp6_route_configured = false;
|
||||
|
||||
while ((a = set_steal_first(link->dhcp6_addresses))) {
|
||||
r = set_ensure_put(&link->dhcp6_addresses_old, &address_hash_ops, a);
|
||||
if (r < 0)
|
||||
|
||||
Reference in New Issue
Block a user