summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2021-09-21 09:11:54 +0200
committerThomas Haller <thaller@redhat.com>2021-09-21 09:11:54 +0200
commit79d4b67681c7a72c37686115121d5a254fb25c15 (patch)
treee638183b638800afc740034545b2385d58b989a1
parentb1ad3f1ba5f15a3a4a753bbc19bb6d08f313bc69 (diff)
downloadNetworkManager-79d4b67681c7a72c37686115121d5a254fb25c15.tar.gz
l3cfg: add nm_l3_config_data_lookup_address_4() helper
-rw-r--r--src/core/nm-l3-config-data.c20
-rw-r--r--src/core/nm-l3-config-data.h5
2 files changed, 25 insertions, 0 deletions
diff --git a/src/core/nm-l3-config-data.c b/src/core/nm-l3-config-data.c
index 70fca5afb4..5307002b41 100644
--- a/src/core/nm-l3-config-data.c
+++ b/src/core/nm-l3-config-data.c
@@ -873,6 +873,26 @@ nm_l3_config_data_lookup_obj(const NML3ConfigData *self, const NMPObject *obj)
return nm_dedup_multi_index_lookup_obj(self->multi_idx, idx, obj);
}
+const NMPlatformIP4Address *
+nm_l3_config_data_lookup_address_4(const NML3ConfigData *self,
+ in_addr_t addr,
+ guint8 plen,
+ in_addr_t peer_addr)
+{
+ const NMDedupMultiEntry *head;
+ NMPObject obj_stack;
+
+ nm_assert(_NM_IS_L3_CONFIG_DATA(self, TRUE));
+
+ nmp_object_stackinit_id_ip4_address(&obj_stack, self->ifindex, addr, plen, peer_addr);
+
+ head = nm_l3_config_data_lookup_obj(self, &obj_stack);
+ if (!head)
+ return NULL;
+
+ return NMP_OBJECT_CAST_IP4_ADDRESS(head->obj);
+}
+
const NMPlatformIP6Address *
nm_l3_config_data_lookup_address_6(const NML3ConfigData *self, const struct in6_addr *addr)
{
diff --git a/src/core/nm-l3-config-data.h b/src/core/nm-l3-config-data.h
index 2e82203466..35b316d162 100644
--- a/src/core/nm-l3-config-data.h
+++ b/src/core/nm-l3-config-data.h
@@ -222,6 +222,11 @@ const NMDedupMultiIdxType *nm_l3_config_data_lookup_index(const NML3ConfigData *
const NMDedupMultiEntry *nm_l3_config_data_lookup_obj(const NML3ConfigData *self,
const NMPObject * obj);
+const NMPlatformIP4Address *nm_l3_config_data_lookup_address_4(const NML3ConfigData *self,
+ in_addr_t addr,
+ guint8 plen,
+ in_addr_t peer_addr);
+
const NMPlatformIP6Address *nm_l3_config_data_lookup_address_6(const NML3ConfigData * self,
const struct in6_addr *addr);