networkd: address - introduce address_is_ready()

Checks that a given address is not tentative nor deprecated.
This commit is contained in:
Tom Gundersen
2015-10-11 15:04:16 +02:00
parent 91b5f99731
commit ce6c77ebf1
3 changed files with 8 additions and 1 deletions
+6
View File
@@ -738,3 +738,9 @@ int config_parse_label(const char *unit,
return 0;
}
bool address_is_ready(const Address *a) {
assert(a);
return !(a->flags & (IFA_F_TENTATIVE | IFA_F_DEPRECATED));
}
+1
View File
@@ -67,6 +67,7 @@ int address_configure(Address *address, Link *link, sd_netlink_message_handler_t
int address_update(Address *address, Link *link, sd_netlink_message_handler_t callback);
int address_remove(Address *address, Link *link, sd_netlink_message_handler_t callback);
bool address_equal(Address *a1, Address *a2);
bool address_is_ready(const Address *a);
DEFINE_TRIVIAL_CLEANUP_FUNC(Address*, address_free);
#define _cleanup_address_free_ _cleanup_(address_freep)
+1 -1
View File
@@ -2275,7 +2275,7 @@ static void link_update_operstate(Link *link) {
/* if we have carrier, check what addresses we have */
SET_FOREACH(address, link->addresses, i) {
if (address->flags & (IFA_F_TENTATIVE | IFA_F_DEPRECATED))
if (!address_is_ready(address))
continue;
if (address->scope < scope)