summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2009-06-18 14:32:44 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2009-06-18 14:32:44 +0200
commit1b3b3e34ecbc281a13d4ca0b99e891ee9c4d5cac (patch)
treee1212220d75f6ad8c67dfc3412d4ec648fd1b7eb /lib
parent6f5603badc12dbbf440e8f85b1165cc8f5d671c7 (diff)
downloadbird-1b3b3e34ecbc281a13d4ca0b99e891ee9c4d5cac.tar
bird-1b3b3e34ecbc281a13d4ca0b99e891ee9c4d5cac.zip
Minor bugfixes.
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), \