Commit 8d76ad6c authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Adjusted to the GETHOSTBYADDR_R_NARGS style

parent 784c29c6
Loading
Loading
Loading
Loading
+19 −5
Original line number Diff line number Diff line
@@ -698,11 +698,25 @@ CURLcode _ftp(struct connectdata *conn)

        address = inet_addr(newhost);
# if defined(HAVE_GETHOSTBYADDR_R)

#  if (GETHOSTBYADDR_R_NARGS < 8)
        /* Solaris and IRIX */
        answer = gethostbyaddr_r((char *) &address, sizeof(address), AF_INET,
                                 (struct hostent *)hostent_buf,
                                 hostent_buf + sizeof(*answer),
                                 sizeof(hostent_buf) - sizeof(*answer),
                                 &h_errnop);
#  else
        /* Linux style */
        if(gethostbyaddr_r((char *) &address, sizeof(address), AF_INET,
                           (struct hostent *)hostent_buf,
                           hostent_buf + sizeof(*answer),
                           sizeof(hostent_buf) - sizeof(*answer),
                           &answer,
                           &h_errnop))
           answer=NULL; /* error */
#  endif
        
# else
        answer = gethostbyaddr((char *) &address, sizeof(address), AF_INET);
# endif
+13 −1
Original line number Diff line number Diff line
@@ -120,10 +120,22 @@ struct hostent *GetHost(struct UrlData *data,
  else {
    int h_errnop;
    memset(buf,0,buf_size);	/* workaround for gethostbyname_r bug in qnx nto */
#if (GETHOSTBYNAME_R_NARGS < 6)
    /* Solaris, IRIX and more */
    if ((h = gethostbyname_r(hostname,
                             (struct hostent *)buf,buf +
                             sizeof(struct hostent),buf_size -
                             sizeof(struct hostent),&h_errnop)) == NULL ) {
                             sizeof(struct hostent),&h_errnop)) == NULL )
#else
      /* Linux */
      if( gethostbyname_r(hostname,
                          (struct hostent *)buf,buf +
                          sizeof(struct hostent),buf_size -
                          sizeof(struct hostent),
                          &h, /* DIFFERENCE */
                          &h_errnop))
#endif
      {
      infof(data, "gethostbyname_r(2) failed for %s\n", hostname);
    }
#else