diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2024-02-28 22:25:05 +1100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2024-02-29 09:47:35 +0100 |
commit | e196eada6f51a8e36156a71dbccd746cf89a47fa (patch) | |
tree | 77cb14f37cdf87fe434e13e7197bd938b356c01c | |
parent | f6e6e8ad40eed1cbd48122c67a2ca8fd3a293992 (diff) | |
download | passt-e196eada6f51a8e36156a71dbccd746cf89a47fa.tar passt-e196eada6f51a8e36156a71dbccd746cf89a47fa.tar.gz passt-e196eada6f51a8e36156a71dbccd746cf89a47fa.tar.bz2 passt-e196eada6f51a8e36156a71dbccd746cf89a47fa.tar.lz passt-e196eada6f51a8e36156a71dbccd746cf89a47fa.tar.xz passt-e196eada6f51a8e36156a71dbccd746cf89a47fa.tar.zst passt-e196eada6f51a8e36156a71dbccd746cf89a47fa.zip |
util: Allow IN4_IS_* macros to operate on untyped addresses
The IN4_IS_*() macros expect a pointer to a struct in_addr. That
makes sense, but sometimes we have an IPv4 address as a void * pointer
or union type which makes these less convenient. Additionally, this
doesn't match the behaviour of the standard library's IN6_IS_*()
macros on which they're modelled, nor our own IN4_ARE_ADDR_EQUAL().
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
-rw-r--r-- | util.h | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -111,13 +111,13 @@ #endif #define IN4_IS_ADDR_UNSPECIFIED(a) \ - ((a)->s_addr == htonl_constant(INADDR_ANY)) + (((struct in_addr *)(a))->s_addr == htonl_constant(INADDR_ANY)) #define IN4_IS_ADDR_BROADCAST(a) \ - ((a)->s_addr == htonl_constant(INADDR_BROADCAST)) + (((struct in_addr *)(a))->s_addr == htonl_constant(INADDR_BROADCAST)) #define IN4_IS_ADDR_LOOPBACK(a) \ - (ntohl((a)->s_addr) >> IN_CLASSA_NSHIFT == IN_LOOPBACKNET) + (ntohl(((struct in_addr *)(a))->s_addr) >> IN_CLASSA_NSHIFT == IN_LOOPBACKNET) #define IN4_IS_ADDR_MULTICAST(a) \ - (IN_MULTICAST(ntohl((a)->s_addr))) + (IN_MULTICAST(ntohl(((struct in_addr *)(a))->s_addr))) #define IN4_ARE_ADDR_EQUAL(a, b) \ (((struct in_addr *)(a))->s_addr == ((struct in_addr *)b)->s_addr) #define IN4ADDR_LOOPBACK_INIT \ |