]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
in-addr-util: introduce in6_addr_is_link_local()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 17 Feb 2021 16:56:47 +0000 (01:56 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 17 Feb 2021 18:48:06 +0000 (03:48 +0900)
src/basic/in-addr-util.c
src/basic/in-addr-util.h

index 6ee3a6ad63b30d8a9863604c9c061a7b495633a2..06632b846d23b188eaf67cc7b0d7c3f43aec6886 100644 (file)
@@ -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;
 }
index f7cdf0d9bc0c82d3605b4ec947d9565fe8fd2ce0..7494358d4239a42295330ffeac0c75dae52ea146 100644 (file)
@@ -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);