+ switch(sockname->sa_family)
+ {
+ case AF_INET6:
+ addr = (char *) &((struct sockaddr_in6 *)sockname)->sin6_addr;
+ addrlen = sizeof(((struct sockaddr_in6 *)sockname)->sin6_addr);
+ port = ((struct sockaddr_in6 *)sockname)->sin6_port;
+ if(!IN6_IS_ADDR_V4MAPPED(addr))
+ {
+ if(!IN6_IS_ADDR_LOOPBACK(addr))
+ family = XCB_FAMILY_INTERNET_6;
+ break;
+ }
+ addr += 12;
+ /* if v4-mapped, fall through. */