diff options
author | Dan Williams <dcbw@redhat.com> | 2013-11-02 10:20:03 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2013-11-08 16:46:44 -0600 |
commit | 20483d65ae532a46d70bf1d9bdc774058e01e3f5 (patch) | |
tree | ffce93f4f219f3da9d004a208f480d309a85c20d | |
parent | afcc4f2a25a6db442341983fca44734033072eaf (diff) | |
download | NetworkManager-20483d65ae532a46d70bf1d9bdc774058e01e3f5.tar.gz |
core: add nm_ip4_config_address_exists() and nm_ip6_config_address_exists()
-rw-r--r-- | src/nm-ip4-config.c | 16 | ||||
-rw-r--r-- | src/nm-ip4-config.h | 1 | ||||
-rw-r--r-- | src/nm-ip6-config.c | 17 | ||||
-rw-r--r-- | src/nm-ip6-config.h | 1 |
4 files changed, 35 insertions, 0 deletions
diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c index 8ee5199c7a..2ea7012abd 100644 --- a/src/nm-ip4-config.c +++ b/src/nm-ip4-config.c @@ -981,6 +981,22 @@ nm_ip4_config_get_address (const NMIP4Config *config, guint i) return &g_array_index (priv->addresses, NMPlatformIP4Address, i); } +gboolean +nm_ip4_config_address_exists (const NMIP4Config *config, + const NMPlatformIP4Address *needle) +{ + NMIP4ConfigPrivate *priv = NM_IP4_CONFIG_GET_PRIVATE (config); + guint i; + + for (i = 0; i < priv->addresses->len; i++) { + const NMPlatformIP4Address *haystack = &g_array_index (priv->addresses, NMPlatformIP4Address, i); + + if (needle->address == haystack->address && needle->plen == haystack->plen) + return TRUE; + } + return FALSE; +} + /******************************************************************/ void diff --git a/src/nm-ip4-config.h b/src/nm-ip4-config.h index e105098294..3b2b250c93 100644 --- a/src/nm-ip4-config.h +++ b/src/nm-ip4-config.h @@ -83,6 +83,7 @@ void nm_ip4_config_add_address (NMIP4Config *config, const NMPlatformIP4Address void nm_ip4_config_del_address (NMIP4Config *config, guint i); guint nm_ip4_config_get_num_addresses (const NMIP4Config *config); const NMPlatformIP4Address *nm_ip4_config_get_address (const NMIP4Config *config, guint i); +gboolean nm_ip4_config_address_exists (const NMIP4Config *config, const NMPlatformIP4Address *address); /* Routes */ void nm_ip4_config_reset_routes (NMIP4Config *config); diff --git a/src/nm-ip6-config.c b/src/nm-ip6-config.c index 4986cae313..84956c922b 100644 --- a/src/nm-ip6-config.c +++ b/src/nm-ip6-config.c @@ -880,6 +880,23 @@ nm_ip6_config_get_address (const NMIP6Config *config, guint i) return &g_array_index (priv->addresses, NMPlatformIP6Address, i); } +gboolean +nm_ip6_config_address_exists (const NMIP6Config *config, + const NMPlatformIP6Address *needle) +{ + NMIP6ConfigPrivate *priv = NM_IP6_CONFIG_GET_PRIVATE (config); + guint i; + + for (i = 0; i < priv->addresses->len; i++) { + const NMPlatformIP6Address *haystack = &g_array_index (priv->addresses, NMPlatformIP6Address, i); + + if ( IN6_ARE_ADDR_EQUAL (&needle->address, &haystack->address) + && needle->plen == haystack->plen) + return TRUE; + } + return FALSE; +} + /******************************************************************/ void diff --git a/src/nm-ip6-config.h b/src/nm-ip6-config.h index 992a7cdd3e..538490a78c 100644 --- a/src/nm-ip6-config.h +++ b/src/nm-ip6-config.h @@ -82,6 +82,7 @@ void nm_ip6_config_add_address (NMIP6Config *config, const NMPlatformIP6Address void nm_ip6_config_del_address (NMIP6Config *config, guint i); guint nm_ip6_config_get_num_addresses (const NMIP6Config *config); const NMPlatformIP6Address *nm_ip6_config_get_address (const NMIP6Config *config, guint i); +gboolean nm_ip6_config_address_exists (const NMIP6Config *config, const NMPlatformIP6Address *address); /* Routes */ void nm_ip6_config_reset_routes (NMIP6Config *config); |