summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJustin Pettit <jpettit@ovn.org>2016-07-19 23:01:29 -0700
committerJustin Pettit <jpettit@ovn.org>2016-07-19 23:49:44 -0700
commitbf32e3e2c029da18b5d6fd9210cb0ea12a1d0383 (patch)
tree47ce72bb741f9353096bd4ac54df72ffb69274ca /lib
parentfbd9b7676f59ac8e3e1a678fc07506cc919df8a5 (diff)
downloadopenvswitch-bf32e3e2c029da18b5d6fd9210cb0ea12a1d0383.tar.gz
packets: Fix in6_is_lla() on systems without s6_addr32 defined.
Fixes: 6d1a4f16 ("packets: Add in6_is_lla() function.") Reported-by: Ben Pfaff <blp@ovn.org> Signed-off-by: Justin Pettit <jpettit@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/packets.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/packets.h b/lib/packets.h
index 8f11e2c05..5fd1e51d4 100644
--- a/lib/packets.h
+++ b/lib/packets.h
@@ -987,8 +987,9 @@ in6_is_lla(struct in6_addr *addr)
#ifdef s6_addr32
return addr->s6_addr32[0] == htonl(0xfe800000) && !(addr->s6_addr32[1]);
#else
- return addr->s6_addr[0] == htons(0xfe80) &&
- !(addr->s6_addr[1] | addr->s6_addr[2] | addr->s6_addr[3]);
+ return addr->s6_addr[0] == 0xfe && addr->s6_addr[1] == 0x80 &&
+ !(addr->s6_addr[2] | addr->s6_addr[3] | addr->s6_addr[4] |
+ addr->s6_addr[5] | addr->s6_addr[6] | addr->s6_addr[7]);
#endif
}