4 ===================================================================
5 RCS file: /cvsroot/apps/pchar/PctestIpv6.cc,v
6 retrieving revision 1.1.1.1
7 retrieving revision 1.3
8 diff -u -r1.1.1.1 -r1.3
9 --- PctestIpv6.cc 2000/05/27 08:18:36 1.1.1.1
10 +++ PctestIpv6.cc 2000/05/27 08:41:33 1.3
13 char *PctestIpv6::GetName(void *a)
15 - struct addrinfo *host, hints;
18 + static char hbuf[NI_MAXHOST];
19 + struct sockaddr_in6 sin6;
22 - memset(&hints, 0, sizeof(hints));
23 - hints.ai_family = PF_INET6;
24 - getaddrinfo((char *) a, NULL, &hints, &host);
25 + memset(&sin6, 0, sizeof(sin6));
26 + sin6.sin6_family = AF_INET6;
27 +#ifdef HAVE_SOCKADDR_SA_LEN
28 + sin6.sin6_len = sizeof(struct sockaddr_in6);
30 + memcpy(&sin6.sin6_addr, a, sizeof(sin6.sin6_addr));
35 - h_name = host->ai_canonname;
37 - * XXX We don't free the addrinfo, since we return the canonname field.
40 - /* freeaddrinfo(host); */
44 - return (GetPrintableAddress(a));
48 + niflags = NumericFlag ? NI_NUMERICHOST : 0;
50 + niflags = NI_NUMERICHOST;
52 + if (getnameinfo((struct sockaddr *)&sin6, sizeof(struct sockaddr_in6),
53 + hbuf, sizeof(hbuf), NULL, 0, niflags) == 0) {