diff options
author | Tom Gundersen <teg@jklm.no> | 2015-09-28 13:30:10 +0200 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2015-10-11 15:04:16 +0200 |
commit | ce6c77ebf12f80c807ad7589a1fb565fabc6a543 (patch) | |
tree | a98bda5e7ec2f3a54b2e75d4277092466e2e887a | |
parent | 91b5f997316ddc77d26f9a7a5e24c335484586bd (diff) |
networkd: address - introduce address_is_ready()
Checks that a given address is not tentative nor deprecated.
-rw-r--r-- | src/network/networkd-address.c | 6 | ||||
-rw-r--r-- | src/network/networkd-address.h | 1 | ||||
-rw-r--r-- | src/network/networkd-link.c | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index 48715972b6..316ae2e4cb 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -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)); +} diff --git a/src/network/networkd-address.h b/src/network/networkd-address.h index 22ac5e95c1..425344fe48 100644 --- a/src/network/networkd-address.h +++ b/src/network/networkd-address.h @@ -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) diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 78853c8cca..755d9c919d 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -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) |