From e5ee645344c7407834e5cc5dad8db288c6760cc6 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 19 Jan 2024 22:33:36 +0900 Subject: [PATCH] local-addresses: introduce has_local_address() helper function It will be used later. --- src/shared/local-addresses.c | 11 +++++++++++ src/shared/local-addresses.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/shared/local-addresses.c b/src/shared/local-addresses.c index d5c478c5ca..b72ff1fb01 100644 --- a/src/shared/local-addresses.c +++ b/src/shared/local-addresses.c @@ -40,6 +40,17 @@ static int address_compare(const struct local_address *a, const struct local_add return memcmp(&a->address, &b->address, FAMILY_ADDRESS_SIZE(a->family)); } +bool has_local_address(const struct local_address *addresses, size_t n_addresses, const struct local_address *needle) { + assert(addresses || n_addresses == 0); + assert(needle); + + for (size_t i = 0; i < n_addresses; i++) + if (address_compare(addresses + i, needle) == 0) + return true; + + return false; +} + static void suppress_duplicates(struct local_address *list, size_t *n_list) { size_t old_size, new_size; diff --git a/src/shared/local-addresses.h b/src/shared/local-addresses.h index 7afbc89569..399d0c6fb8 100644 --- a/src/shared/local-addresses.h +++ b/src/shared/local-addresses.h @@ -14,6 +14,8 @@ struct local_address { union in_addr_union address; }; +bool has_local_address(const struct local_address *addresses, size_t n_addresses, const struct local_address *needle); + int local_addresses(sd_netlink *rtnl, int ifindex, int af, struct local_address **ret); int local_gateways(sd_netlink *rtnl, int ifindex, int af, struct local_address **ret); -- 2.25.1