-#if HAVE_AFINET6
-
-#define IPV6_ADDR_ANY 0x0000U
-
-#define IPV6_ADDR_UNICAST 0x0001U
-#define IPV6_ADDR_MULTICAST 0x0002U
-#define IPV6_ADDR_ANYCAST 0x0004U
-
-#define IPV6_ADDR_LOOPBACK 0x0010U
-#define IPV6_ADDR_LINKLOCAL 0x0020U
-#define IPV6_ADDR_SITELOCAL 0x0040U
-
-#define IPV6_ADDR_COMPATv4 0x0080U
-
-#define IPV6_ADDR_SCOPE_MASK 0x00f0U
-
-#define IPV6_ADDR_MAPPED 0x1000U
-#define IPV6_ADDR_RESERVED 0x2000U /* reserved address space */
-
- if ((f = fopen(_PATH_PROCNET_IFINET6, "r")) != NULL) {
- while (fscanf
- (f, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %20s\n",
- addr6p[0], addr6p[1], addr6p[2], addr6p[3], addr6p[4],
- addr6p[5], addr6p[6], addr6p[7], &if_idx, &plen, &scope,
- &dad_status, devname) != EOF) {
- if (!strcmp(devname, ptr->name)) {
- sprintf(addr6, "%s:%s:%s:%s:%s:%s:%s:%s",
- addr6p[0], addr6p[1], addr6p[2], addr6p[3],
- addr6p[4], addr6p[5], addr6p[6], addr6p[7]);
- inet_pton(AF_INET6, addr6,
- (struct sockaddr *) &sap.sin6_addr);
- sap.sin6_family = AF_INET6;
- printf(" inet6 addr: %s/%d",
- inet6_aftype.sprint((struct sockaddr *) &sap, 1),
- plen);
- printf(" Scope:");
- switch (scope & IPV6_ADDR_SCOPE_MASK) {
- case 0:
- printf("Global");
- break;
- case IPV6_ADDR_LINKLOCAL:
- printf("Link");
- break;
- case IPV6_ADDR_SITELOCAL:
- printf("Site");
- break;
- case IPV6_ADDR_COMPATv4:
- printf("Compat");
- break;
- case IPV6_ADDR_LOOPBACK:
- printf("Host");
- break;
- default:
- printf("Unknown");
- }
- printf("\n");
- }
- }
- fclose(f);
- }
-#endif