+#ifndef NO_IPV6
+ case AF_INET6:
+ *lenp = 6;
+ buf = snewn(*lenp, char);
+ if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) {
+ memcpy(buf, sin6->sin6_addr.s6_addr + 12, 4);
+ PUT_16BIT_MSB_FIRST(buf+4, ntohs(sin6->sin6_port));
+ } else
+ /* This is stupid, but it's what XLib does. */
+ memset(buf, 0, 6);
+ break;
+#endif