From 78f5c4882de559c9e547d4b00f28a441438a5e6a Mon Sep 17 00:00:00 2001 From: meijian Date: Fri, 18 Oct 2024 09:46:08 +0800 Subject: [PATCH 1/2] netinet/in.h: fix LINKLOCAL macro bug Signed-off-by: meijian --- include/netinet/in.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/netinet/in.h b/include/netinet/in.h index 154f785e2c723..a2e0e6ff66564 100644 --- a/include/netinet/in.h +++ b/include/netinet/in.h @@ -201,7 +201,7 @@ ((a)->s6_addr[0] == 0xff) #define IN6_IS_ADDR_LINKLOCAL(a) \ - ((a)->s6_addr16[0] & HTONS(0xffc0) == HTONS(0xfe80)) + (((a)->s6_addr16[0] & HTONS(0xffc0)) == HTONS(0xfe80)) #define IN6_IS_ADDR_LOOPBACK(a) \ ((a)->s6_addr32[0] == 0 && \ From bc90c6e2a2c21f7cbdf96cd64a6c100d7ae7ccf9 Mon Sep 17 00:00:00 2001 From: meijian Date: Mon, 21 Oct 2024 23:58:25 +0800 Subject: [PATCH 2/2] netinet/in.h: add IN6_IS_ADDR_GLOBAL macro Signed-off-by: meijian --- include/netinet/in.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/netinet/in.h b/include/netinet/in.h index a2e0e6ff66564..33d35a7a1d8ce 100644 --- a/include/netinet/in.h +++ b/include/netinet/in.h @@ -215,6 +215,12 @@ (a)->s6_addr32[2] == 0 && \ (a)->s6_addr32[3] == 0) +#define IN6_IS_ADDR_GLOBAL(a) \ + (!IN6_IS_ADDR_MULTICAST(a) && \ + !IN6_IS_ADDR_LINKLOCAL(a) && \ + !IN6_IS_ADDR_LOOPBACK(a) && \ + !IN6_IS_ADDR_UNSPECIFIED(a)) + #define IN6_IS_ADDR_V4COMPAT(a) \ ((a)->s6_addr32[0] == 0 && \ (a)->s6_addr32[1] == 0 && \