No functional change, just refactoring.
return 0;
}
+int sd_dhcp_lease_has_6rd(sd_dhcp_lease *lease) {
+ return lease && lease->sixrd_n_br_addresses > 0;
+}
+
int sd_dhcp_lease_get_vendor_specific(sd_dhcp_lease *lease, const void **data, size_t *data_len) {
assert_return(lease, -EINVAL);
assert_return(data, -EINVAL);
return accept_auto;
}
-bool dhcp4_lease_has_pd_prefix(sd_dhcp_lease *lease) {
- if (!lease)
- return false;
-
- return sd_dhcp_lease_get_6rd(lease, NULL, NULL, NULL, NULL, NULL) >= 0;
-}
-
bool dhcp6_lease_has_pd_prefix(sd_dhcp6_lease *lease) {
uint32_t lifetime_preferred_sec, lifetime_valid_sec;
struct in6_addr pd_prefix;
if (sd_dhcp_client_is_running(link->dhcp_client) <= 0)
return false;
- if (!link->dhcp_lease)
- return false;
-
- return dhcp4_lease_has_pd_prefix(link->dhcp_lease);
+ return sd_dhcp_lease_has_6rd(link->dhcp_lease);
}
static bool dhcp6_pd_uplink_is_ready(Link *link) {
bool link_dhcp_pd_is_enabled(Link *link);
bool dhcp_pd_is_uplink(Link *link, Link *target, bool accept_auto);
int dhcp_pd_find_uplink(Link *link, Link **ret);
-bool dhcp4_lease_has_pd_prefix(sd_dhcp_lease *lease);
bool dhcp6_lease_has_pd_prefix(sd_dhcp6_lease *lease);
int dhcp_pd_remove(Link *link, bool only_marked);
int dhcp_request_prefix_delegation(Link *link);
link->dhcp4_configured = false;
if (link->network->dhcp_use_6rd &&
- dhcp4_lease_has_pd_prefix(link->dhcp_lease))
+ sd_dhcp_lease_has_6rd(link->dhcp_lease))
dhcp4_pd_prefix_lost(link);
k = dhcp4_remove_address_and_routes(link, /* only_marked = */ false);
link_dirty(link);
if (link->network->dhcp_use_6rd) {
- if (dhcp4_lease_has_pd_prefix(link->dhcp_lease)) {
+ if (sd_dhcp_lease_has_6rd(link->dhcp_lease)) {
r = dhcp4_pd_prefix_acquired(link);
if (r < 0)
return log_link_warning_errno(link, r, "Failed to process 6rd option: %m");
- } else if (dhcp4_lease_has_pd_prefix(old_lease))
+ } else if (sd_dhcp_lease_has_6rd(old_lease))
dhcp4_pd_prefix_lost(link);
}
}
if (link->network->dhcp_use_6rd &&
- dhcp4_lease_has_pd_prefix(link->dhcp_lease)) {
+ sd_dhcp_lease_has_6rd(link->dhcp_lease)) {
r = dhcp4_pd_prefix_acquired(link);
if (r < 0)
return log_link_warning_errno(link, r, "Failed to process 6rd option: %m");
assert(link->network);
assert(v);
- if (!link->network->dhcp_use_6rd || !link->dhcp_lease || !dhcp4_lease_has_pd_prefix(link->dhcp_lease))
+ if (!link->network->dhcp_use_6rd || !sd_dhcp_lease_has_6rd(link->dhcp_lease))
return 0;
r = sd_dhcp_lease_get_6rd(link->dhcp_lease, &ipv4masklen, &sixrd_prefixlen, &sixrd_prefix, &br_addresses, &n_br_addresses);
/* If the uplink for PD is self, then request the corresponding DHCP protocol is also ready. */
if (dhcp_pd_is_uplink(link, link, /* accept_auto = */ false)) {
if (link_dhcp4_enabled(link) && link->network->dhcp_use_6rd &&
- link->dhcp_lease && dhcp4_lease_has_pd_prefix(link->dhcp_lease)) {
+ sd_dhcp_lease_has_6rd(link->dhcp_lease)) {
if (!dhcp4_ready)
return (void) log_link_debug(link, "%s(): DHCPv4 6rd prefix is assigned, but DHCPv4 protocol is not finished yet.", __func__);
if (!dhcp_pd_ready)
struct in6_addr *ret_prefix,
const struct in_addr **ret_br_addresses,
size_t *ret_n_br_addresses);
+int sd_dhcp_lease_has_6rd(sd_dhcp_lease *lease);
int sd_dhcp_route_get_destination(sd_dhcp_route *route, struct in_addr *destination);
int sd_dhcp_route_get_destination_prefix_length(sd_dhcp_route *route, uint8_t *length);