summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/ipv6.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/ipv6.h b/lib/ipv6.h
index 9193c4f..9cec86e 100644
--- a/lib/ipv6.h
+++ b/lib/ipv6.h
@@ -31,7 +31,11 @@ typedef struct ipv6_addr {
#define IPA_NONE _MI(0,0,0,0)
-#define ipa_equal(x,y) (!memcmp(&(x),&(y),sizeof(ip_addr)))
+#define ipa_equal(x,y) ({ ip_addr _a=(x), _b=(y); \
+ _I0(_a) == _I0(_b) && \
+ _I1(_a) == _I1(_b) && \
+ _I2(_a) == _I2(_b) && \
+ _I3(_a) == _I3(_b); })
#define ipa_nonzero(x) ({ ip_addr _a=(x); (_I0(_a) || _I1(_a) || _I2(_a) || _I3(_a)); })
#define ipa_and(x,y) ({ ip_addr _a=(x), _b=(y); \
_MI(_I0(_a) & _I0(_b), \