packets: Fix in6_is_lla() on systems without s6_addr32 defined.
[cascardo/ovs.git] / lib / packets.h
index 8f11e2c..5fd1e51 100644 (file)
@@ -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
 }