From: Yu Watanabe Date: Fri, 19 Jan 2024 13:33:36 +0000 (+0900) Subject: local-addresses: introduce has_local_address() helper function X-Git-Tag: v256-rc1~1074^2~1 X-Git-Url: http://git-history.diyao.me/?a=commitdiff_plain;h=e5ee645344c7407834e5cc5dad8db288c6760cc6;p=systemd%2F.git local-addresses: introduce has_local_address() helper function It will be used later. --- 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);