]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
local-addresses: introduce has_local_address() helper function
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 19 Jan 2024 13:33:36 +0000 (22:33 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 20 Jan 2024 07:07:19 +0000 (16:07 +0900)
It will be used later.

src/shared/local-addresses.c
src/shared/local-addresses.h

index d5c478c5caeee188c37938d13777c03cc2c0fec1..b72ff1fb01293637a7d55cfe6d43c111de0fefb6 100644 (file)
@@ -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;
 
index 7afbc895690c1b1b306870e99a2a8a245d01219a..399d0c6fb8099c2273a3b57609632a65b3ab1a81 100644 (file)
@@ -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);