From: Yu Watanabe Date: Wed, 17 Feb 2021 16:56:47 +0000 (+0900) Subject: in-addr-util: introduce in6_addr_is_link_local() X-Git-Tag: v248-rc1~73^2~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1235befaddae3653d59e3531541ece580e6cfc7f;p=thirdparty%2Fsystemd.git in-addr-util: introduce in6_addr_is_link_local() --- diff --git a/src/basic/in-addr-util.c b/src/basic/in-addr-util.c index 6ee3a6ad63b..06632b846d2 100644 --- a/src/basic/in-addr-util.c +++ b/src/basic/in-addr-util.c @@ -48,6 +48,12 @@ bool in4_addr_is_link_local(const struct in_addr *a) { return (be32toh(a->s_addr) & UINT32_C(0xFFFF0000)) == (UINT32_C(169) << 24 | UINT32_C(254) << 16); } +bool in6_addr_is_link_local(const struct in6_addr *a) { + assert(a); + + return IN6_IS_ADDR_LINKLOCAL(a); +} + int in_addr_is_link_local(int family, const union in_addr_union *u) { assert(u); @@ -55,7 +61,7 @@ int in_addr_is_link_local(int family, const union in_addr_union *u) { return in4_addr_is_link_local(&u->in); if (family == AF_INET6) - return IN6_IS_ADDR_LINKLOCAL(&u->in6); + return in6_addr_is_link_local(&u->in6); return -EAFNOSUPPORT; } diff --git a/src/basic/in-addr-util.h b/src/basic/in-addr-util.h index f7cdf0d9bc0..7494358d423 100644 --- a/src/basic/in-addr-util.h +++ b/src/basic/in-addr-util.h @@ -43,6 +43,7 @@ static inline bool in_addr_data_is_set(const struct in_addr_data *a) { int in_addr_is_multicast(int family, const union in_addr_union *u); bool in4_addr_is_link_local(const struct in_addr *a); +bool in6_addr_is_link_local(const struct in6_addr *a); int in_addr_is_link_local(int family, const union in_addr_union *u); bool in6_addr_is_link_local_all_nodes(const struct in6_addr *a);