diff options
-rw-r--r-- | ares/ares_getnameinfo.c | 8 | ||||
-rw-r--r-- | lib/hostip4.c | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/ares/ares_getnameinfo.c b/ares/ares_getnameinfo.c index 5499705b8..a63c9b6ad 100644 --- a/ares/ares_getnameinfo.c +++ b/ares/ares_getnameinfo.c @@ -322,6 +322,9 @@ static char *lookup_service(unsigned short port, int flags, static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int flags, char *buf, size_t buflen) { +#ifdef HAVE_IF_INDEXTONAME + int is_ll, is_mcll; +#endif char fmt_u[] = "%u"; char fmt_lu[] = "%lu"; char tmpbuf[IF_NAMESIZE + 2]; @@ -331,9 +334,10 @@ static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int flags, tmpbuf[0] = '%'; #ifdef HAVE_IF_INDEXTONAME + is_ll = IN6_IS_ADDR_LINKLOCAL(&addr6->sin6_addr); + is_mcll = IN6_IS_ADDR_MC_LINKLOCAL(&addr6->sin6_addr); if ((flags & ARES_NI_NUMERICSCOPE) || - (!IN6_IS_ADDR_LINKLOCAL(&addr6->sin6_addr) - && !IN6_IS_ADDR_MC_LINKLOCAL(&addr6->sin6_addr))) + (!is_ll && !is_mcll)) { sprintf(&tmpbuf[1], fmt, addr6->sin6_scope_id); } diff --git a/lib/hostip4.c b/lib/hostip4.c index 685156bad..49556db66 100644 --- a/lib/hostip4.c +++ b/lib/hostip4.c @@ -124,7 +124,7 @@ Curl_addrinfo *Curl_getaddrinfo(struct connectdata *conn, int port, int *waitp) { -#if defined(HAVE_GETHOSTBYNAME_R_3) || defined(HAVE_GETHOSTBYNAME_R_6) +#if defined(HAVE_GETHOSTBYNAME_R_3) int res; #endif Curl_addrinfo *ai = NULL; @@ -181,7 +181,7 @@ Curl_addrinfo *Curl_getaddrinfo(struct connectdata *conn, #ifdef HAVE_GETHOSTBYNAME_R_6 /* Linux */ - res=gethostbyname_r(hostname, + (void)gethostbyname_r(hostname, (struct hostent *)buf, (char *)buf + sizeof(struct hostent), CURL_HOSTENT_SIZE - sizeof(struct hostent), |