$NetBSD: patch-ac,v 1.5 2004/10/03 09:20:41 tron Exp $ --- lib/lwres/getaddrinfo.c- 2004-05-16 05:03:22.000000000 +0900 +++ lib/lwres/getaddrinfo.c 2004-05-16 05:04:33.000000000 +0900 @@ -30,6 +30,10 @@ #include #include +#ifdef __KAME__ +#include +#endif + #define SA(addr) ((struct sockaddr *)(addr)) #define SIN(addr) ((struct sockaddr_in *)(addr)) #define SIN6(addr) ((struct sockaddr_in6 *)(addr)) @@ -252,14 +256,22 @@ p = strchr(ntmp, '%'); ep = NULL; +#ifdef __KAME__ + if (p != NULL) { + scopeid = if_nametoindex(p + 1); + if (scopeid) + p = NULL; + } +#endif /* * Vendors may want to support non-numeric * scopeid around here. */ - if (p != NULL) + if (p != NULL) { scopeid = (lwres_uint32_t)strtoul(p + 1, &ep, 10); + } if (p != NULL && ep != NULL && ep[0] == '\0') *p = '\0'; else {