diff options
author | Thomas Haller <thaller@redhat.com> | 2016-01-30 22:28:23 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2016-02-02 11:43:57 +0100 |
commit | 9ff161b2a1b0d4a63f91d326050ae1b8906b7b1b (patch) | |
tree | 6b1300038a934d52a42075b6e2a9bdca059094f6 /src/nm-ip6-config.c | |
parent | 5ff8decb8fd94b541cfd3bfd8d00eaecd7c28f51 (diff) | |
download | NetworkManager-9ff161b2a1b0d4a63f91d326050ae1b8906b7b1b.tar.gz |
device: move have_ip6_address() to nm_ip6_config_get_address_first_nontentative()
Diffstat (limited to 'src/nm-ip6-config.c')
-rw-r--r-- | src/nm-ip6-config.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/nm-ip6-config.c b/src/nm-ip6-config.c index 8a70ab663c..b6f534c36e 100644 --- a/src/nm-ip6-config.c +++ b/src/nm-ip6-config.c @@ -1362,6 +1362,29 @@ nm_ip6_config_address_exists (const NMIP6Config *config, return _addresses_get_index (config, needle) >= 0; } +const NMPlatformIP6Address * +nm_ip6_config_get_address_first_nontentative (const NMIP6Config *config, gboolean linklocal) +{ + NMIP6ConfigPrivate *priv; + guint i; + + g_return_val_if_fail (NM_IS_IP6_CONFIG (config), NULL); + + priv = NM_IP6_CONFIG_GET_PRIVATE (config); + + linklocal = !!linklocal; + + for (i = 0; i < priv->addresses->len; i++) { + const NMPlatformIP6Address *addr = &g_array_index (priv->addresses, NMPlatformIP6Address, i); + + if ( ((!!IN6_IS_ADDR_LINKLOCAL (&addr->address)) == linklocal) + && !(addr->flags & IFA_F_TENTATIVE)) + return addr; + } + + return NULL; +} + /******************************************************************/ void |