]> xenbits.xensource.com Git - libvirt.git/commitdiff
build: avoid non-portable IPv6 struct member, for MacOS X
authorEric Blake <eblake@redhat.com>
Wed, 15 Sep 2010 20:50:51 +0000 (14:50 -0600)
committerEric Blake <eblake@redhat.com>
Wed, 15 Sep 2010 20:50:51 +0000 (14:50 -0600)
* src/util/network.c (getIPv6Addr): Manually join s6_addr bytes,
instead of assuming s6_addr16 shorts.
Reported by Justin Clifton; solution suggested by Bruno Haible.

src/util/network.c

index b17d4196302cb42747d547998c4f736b23229458..17aa746effbe5d9ea7f3d98442f284b5dd3c769c 100644 (file)
@@ -47,7 +47,8 @@ static int getIPv6Addr(virSocketAddrPtr addr, virIPv6AddrPtr tab) {
         return(-1);
 
     for (i = 0;i < 8;i++) {
-        (*tab)[i] = ntohs(addr->inet6.sin6_addr.s6_addr16[i]);
+        (*tab)[i] = ((addr->inet6.sin6_addr.s6_addr[2 * i] << 8) |
+                     addr->inet6.sin6_addr.s6_addr[2 * i + 1]);
     }
 
     return(0);