summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2021-06-10 22:48:43 +0200
committerBeniamino Galvani <bgalvani@redhat.com>2021-06-21 10:08:27 +0200
commitca31cbbc7478230b35aa0fd7acfccd09aa1572fc (patch)
tree6edd23b4e535670677607f25eb8939b57e78d9a6
parent376c7f83152ebd561ba837695dd24b641ad38021 (diff)
core: add nm_ip_config_find_first_address()
Replace nm_ip6_config_find_first_address() with a version generic for IPv4 and IPv6.
-rw-r--r--src/core/devices/nm-device.c32
-rw-r--r--src/core/nm-ip4-config.c20
-rw-r--r--src/core/nm-ip4-config.h3
-rw-r--r--src/core/nm-ip6-config.c22
-rw-r--r--src/core/nm-ip6-config.h2
5 files changed, 39 insertions, 40 deletions
diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c
index 19a46b5f52..d6110d04ec 100644
--- a/src/core/devices/nm-device.c
+++ b/src/core/devices/nm-device.c
@@ -9893,9 +9893,9 @@ dhcp6_start_with_link_ready(NMDevice *self, NMConnection *connection)
nm_assert(s_con);
if (priv->ext_ip6_config_captured) {
- ll_addr = nm_ip6_config_find_first_address(priv->ext_ip6_config_captured,
- NM_PLATFORM_MATCH_WITH_ADDRTYPE_LINKLOCAL
- | NM_PLATFORM_MATCH_WITH_ADDRSTATE_NORMAL);
+ ll_addr = nm_ip_config_find_first_address(NM_IP_CONFIG(priv->ext_ip6_config_captured),
+ NM_PLATFORM_MATCH_WITH_ADDRTYPE_LINKLOCAL
+ | NM_PLATFORM_MATCH_WITH_ADDRSTATE_NORMAL);
}
if (!ll_addr) {
@@ -10134,9 +10134,9 @@ linklocal6_check_complete(NMDevice *self)
}
if (!priv->ext_ip6_config_captured
- || !nm_ip6_config_find_first_address(priv->ext_ip6_config_captured,
- NM_PLATFORM_MATCH_WITH_ADDRTYPE_LINKLOCAL
- | NM_PLATFORM_MATCH_WITH_ADDRSTATE_NORMAL)) {
+ || !nm_ip_config_find_first_address(NM_IP_CONFIG(priv->ext_ip6_config_captured),
+ NM_PLATFORM_MATCH_WITH_ADDRTYPE_LINKLOCAL
+ | NM_PLATFORM_MATCH_WITH_ADDRSTATE_NORMAL)) {
/* we don't have a non-tentative link local address yet. Wait longer. */
return;
}
@@ -10182,10 +10182,10 @@ check_and_add_ipv6ll_addr(NMDevice *self)
return;
if (priv->ext_ip6_config_captured
- && nm_ip6_config_find_first_address(priv->ext_ip6_config_captured,
- NM_PLATFORM_MATCH_WITH_ADDRTYPE_LINKLOCAL
- | NM_PLATFORM_MATCH_WITH_ADDRSTATE_NORMAL
- | NM_PLATFORM_MATCH_WITH_ADDRSTATE_TENTATIVE)) {
+ && nm_ip_config_find_first_address(NM_IP_CONFIG(priv->ext_ip6_config_captured),
+ NM_PLATFORM_MATCH_WITH_ADDRTYPE_LINKLOCAL
+ | NM_PLATFORM_MATCH_WITH_ADDRSTATE_NORMAL
+ | NM_PLATFORM_MATCH_WITH_ADDRSTATE_TENTATIVE)) {
/* Already have an LL address, nothing to do */
return;
}
@@ -10255,9 +10255,9 @@ linklocal6_start(NMDevice *self)
nm_clear_g_source(&priv->linklocal6_timeout_id);
if (priv->ext_ip6_config_captured
- && nm_ip6_config_find_first_address(priv->ext_ip6_config_captured,
- NM_PLATFORM_MATCH_WITH_ADDRTYPE_LINKLOCAL
- | NM_PLATFORM_MATCH_WITH_ADDRSTATE_NORMAL))
+ && nm_ip_config_find_first_address(NM_IP_CONFIG(priv->ext_ip6_config_captured),
+ NM_PLATFORM_MATCH_WITH_ADDRTYPE_LINKLOCAL
+ | NM_PLATFORM_MATCH_WITH_ADDRSTATE_NORMAL))
return TRUE;
_LOGD(LOGD_DEVICE,
@@ -10836,9 +10836,9 @@ ndisc_ra_timeout(NMNDisc *ndisc, NMDevice *self)
* addresses we find inside priv->ip_config_6.
*/
if (priv->ip_config_6
- && nm_ip6_config_find_first_address(priv->ip_config_6,
- NM_PLATFORM_MATCH_WITH_ADDRTYPE_NORMAL
- | NM_PLATFORM_MATCH_WITH_ADDRSTATE__ANY))
+ && nm_ip_config_find_first_address(NM_IP_CONFIG(priv->ip_config_6),
+ NM_PLATFORM_MATCH_WITH_ADDRTYPE_NORMAL
+ | NM_PLATFORM_MATCH_WITH_ADDRSTATE__ANY))
nm_device_activate_schedule_ip_config_result(self, AF_INET6, NULL);
else
nm_device_activate_schedule_ip_config_timeout(self, AF_INET6);
diff --git a/src/core/nm-ip4-config.c b/src/core/nm-ip4-config.c
index 171ed4bae1..47f0ee3a80 100644
--- a/src/core/nm-ip4-config.c
+++ b/src/core/nm-ip4-config.c
@@ -1977,6 +1977,26 @@ nm_ip_config_dump(const NMIPConfig *self, const char *detail, NMLogLevel level,
/*****************************************************************************/
+gconstpointer
+nm_ip_config_find_first_address(const NMIPConfig *self, NMPlatformMatchFlags match_flag)
+{
+ NMDedupMultiIter iter;
+ const NMPlatformIPAddress *address;
+
+ g_return_val_if_fail(NM_IS_IP_CONFIG(self), NULL);
+
+ nm_assert(!NM_FLAGS_ANY(
+ match_flag,
+ ~(NM_PLATFORM_MATCH_WITH_ADDRTYPE__ANY | NM_PLATFORM_MATCH_WITH_ADDRSTATE__ANY)));
+
+ nm_ip_config_iter_ip_address_for_each (&iter, self, &address) {
+ if (nm_platform_ip_address_match(nm_ip_config_get_addr_family(self), address, match_flag))
+ return address;
+ }
+
+ return NULL;
+}
+
void
nm_ip4_config_reset_addresses(NMIP4Config *self)
{
diff --git a/src/core/nm-ip4-config.h b/src/core/nm-ip4-config.h
index 7032a2385e..fdaa6d4673 100644
--- a/src/core/nm-ip4-config.h
+++ b/src/core/nm-ip4-config.h
@@ -664,4 +664,7 @@ nm_ip_config_intersect_alloc(const NMIPConfig *a,
}
}
+gconstpointer nm_ip_config_find_first_address(const NMIPConfig * self,
+ NMPlatformMatchFlags match_flag);
+
#endif /* __NETWORKMANAGER_IP4_CONFIG_H__ */
diff --git a/src/core/nm-ip6-config.c b/src/core/nm-ip6-config.c
index 61dccf3b0f..d2ecf1759b 100644
--- a/src/core/nm-ip6-config.c
+++ b/src/core/nm-ip6-config.c
@@ -1628,28 +1628,6 @@ nm_ip6_config_lookup_address(const NMIP6Config *self, const struct in6_addr *add
return entry ? NMP_OBJECT_CAST_IP6_ADDRESS(entry->obj) : NULL;
}
-const NMPlatformIP6Address *
-nm_ip6_config_find_first_address(const NMIP6Config *self, NMPlatformMatchFlags match_flag)
-{
- const NMPlatformIP6Address *addr;
- NMDedupMultiIter iter;
-
- g_return_val_if_fail(NM_IS_IP6_CONFIG(self), NULL);
-
- nm_assert(!NM_FLAGS_ANY(
- match_flag,
- ~(NM_PLATFORM_MATCH_WITH_ADDRTYPE__ANY | NM_PLATFORM_MATCH_WITH_ADDRSTATE__ANY)));
-
- nm_assert(NM_FLAGS_ANY(match_flag, NM_PLATFORM_MATCH_WITH_ADDRTYPE__ANY));
- nm_assert(NM_FLAGS_ANY(match_flag, NM_PLATFORM_MATCH_WITH_ADDRSTATE__ANY));
-
- nm_ip_config_iter_ip6_address_for_each (&iter, self, &addr) {
- if (nm_platform_ip_address_match(AF_INET6, (NMPlatformIPAddress *) addr, match_flag))
- return addr;
- }
- return NULL;
-}
-
/**
* nm_ip6_config_has_dad_pending_addresses
* @self: configuration containing the addresses to check
diff --git a/src/core/nm-ip6-config.h b/src/core/nm-ip6-config.h
index 4aa0ee4e58..8694ab0c0f 100644
--- a/src/core/nm-ip6-config.h
+++ b/src/core/nm-ip6-config.h
@@ -125,8 +125,6 @@ void _nmtst_ip6_config_del_address(NMIP6Config *self, guint i);
guint nm_ip6_config_get_num_addresses(const NMIP6Config *self);
const NMPlatformIP6Address *nm_ip6_config_get_first_address(const NMIP6Config *self);
const NMPlatformIP6Address *_nmtst_ip6_config_get_address(const NMIP6Config *self, guint i);
-const NMPlatformIP6Address *nm_ip6_config_find_first_address(const NMIP6Config * self,
- NMPlatformMatchFlags match_flag);
gboolean nm_ip6_config_address_exists(const NMIP6Config *self, const NMPlatformIP6Address *address);
const NMPlatformIP6Address *nm_ip6_config_lookup_address(const NMIP6Config * self,
const struct in6_addr *addr);