diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2021-06-10 22:48:43 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2021-06-21 10:08:27 +0200 |
commit | ca31cbbc7478230b35aa0fd7acfccd09aa1572fc (patch) | |
tree | 6edd23b4e535670677607f25eb8939b57e78d9a6 | |
parent | 376c7f83152ebd561ba837695dd24b641ad38021 (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.c | 32 | ||||
-rw-r--r-- | src/core/nm-ip4-config.c | 20 | ||||
-rw-r--r-- | src/core/nm-ip4-config.h | 3 | ||||
-rw-r--r-- | src/core/nm-ip6-config.c | 22 | ||||
-rw-r--r-- | src/core/nm-ip6-config.h | 2 |
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); |