Skip to content
Snippets Groups Projects
hostip.c 28.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • 
           Troels Walsted Hansen helped us work this out on March 3rd, 2003. */
    
    
        if(CURL_NAMELOOKUP_SIZE >=
           (sizeof(struct hostent)+sizeof(struct hostent_data)))
    
          /* August 22nd, 2000: Albert Chin-A-Young brought an updated version
           * that should work! September 20: Richard Prescott worked on the buffer
           * size dilemma. */
    
          ret = gethostbyname_r(hostname,
    
                                (struct hostent_data *)((char *)buf +
                                                        sizeof(struct hostent)));
    
        else
          ret = -1; /* failure, too smallish buffer size */
        
    
        /* result expected in h */
        h = (struct hostent*)buf;
    
        h_errnop= errno; /* we don't deal with this, but set it anyway */
    
        if(ret)
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          infof(data, "gethostbyname_r(2) failed for %s\n", hostname);
    
          h = NULL; /* set return code to NULL */
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      else {
        if ((h = gethostbyname(hostname)) == NULL ) {
          infof(data, "gethostbyname(2) failed for %s\n", hostname);
        }
    
        {
          char *buf=(char *)malloc(CURL_NAMELOOKUP_SIZE);
    
          /* we make a copy of the hostent right now, right here, as the
             static one we got a pointer to might get removed when we don't
             want/expect that */
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      }
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      return (h);
    }
    
    #endif /* end of IPv4-specific code */