mirror of
https://github.com/systemd/systemd
synced 2024-10-06 16:21:34 +00:00
network/address: unconditionally check if address is ready
Previously, we checked if the address is ready only when it is an IPv6 address. But, IPv4 address never enter tentative state, hence the check for an IPv4 address is effectively equivalent to the one for IPv6. So, let's unify the check. This does not change any effective behavior.
This commit is contained in:
parent
3a30d81238
commit
1a4b0459f6
|
@ -978,7 +978,7 @@ int manager_get_address(Manager *manager, int family, const union in_addr_union
|
|||
return -ENOENT;
|
||||
}
|
||||
|
||||
bool manager_has_address(Manager *manager, int family, const union in_addr_union *address, bool check_ready) {
|
||||
bool manager_has_address(Manager *manager, int family, const union in_addr_union *address) {
|
||||
Address *a;
|
||||
|
||||
assert(manager);
|
||||
|
@ -988,7 +988,7 @@ bool manager_has_address(Manager *manager, int family, const union in_addr_union
|
|||
if (manager_get_address(manager, family, address, 0, &a) < 0)
|
||||
return false;
|
||||
|
||||
return check_ready ? address_is_ready(a) : (address_exists(a) && address_lifetime_is_valid(a));
|
||||
return address_is_ready(a);
|
||||
}
|
||||
|
||||
const char* format_lifetime(char *buf, size_t l, usec_t lifetime_usec) {
|
||||
|
|
|
@ -112,7 +112,7 @@ static inline int link_get_ipv4_address(Link *link, const struct in_addr *addres
|
|||
return link_get_address(link, AF_INET, &(union in_addr_union) { .in = *address }, prefixlen, ret);
|
||||
}
|
||||
int manager_get_address(Manager *manager, int family, const union in_addr_union *address, unsigned char prefixlen, Address **ret);
|
||||
bool manager_has_address(Manager *manager, int family, const union in_addr_union *address, bool check_ready);
|
||||
bool manager_has_address(Manager *manager, int family, const union in_addr_union *address);
|
||||
|
||||
void address_cancel_request(Address *address);
|
||||
int link_request_address(
|
||||
|
|
|
@ -1302,7 +1302,7 @@ static int route_is_ready_to_configure(const Route *route, Link *link) {
|
|||
}
|
||||
|
||||
if (in_addr_is_set(route->family, &route->prefsrc) > 0) {
|
||||
r = manager_has_address(link->manager, route->family, &route->prefsrc, route->family == AF_INET6);
|
||||
r = manager_has_address(link->manager, route->family, &route->prefsrc);
|
||||
if (r <= 0)
|
||||
return r;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue