summaryrefslogtreecommitdiff
path: root/src/nm-ip6-config.c
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2016-01-30 22:28:23 +0100
committerThomas Haller <thaller@redhat.com>2016-02-02 11:43:57 +0100
commit9ff161b2a1b0d4a63f91d326050ae1b8906b7b1b (patch)
tree6b1300038a934d52a42075b6e2a9bdca059094f6 /src/nm-ip6-config.c
parent5ff8decb8fd94b541cfd3bfd8d00eaecd7c28f51 (diff)
downloadNetworkManager-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.c23
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