Commit 47def809 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

made sure the correct pieces of code are compiled on IPv4-only hosts, and

the pack_hostent() is only compiled if gethostbyname_r() isn't present.
parent cfb32ec0
Loading
Loading
Loading
Loading
+16 −14
Original line number Diff line number Diff line
@@ -66,6 +66,20 @@
#include "memdebug.h"
#endif

/*
 * This is a wrapper function for freeing name information in a protocol
 * independent way. This takes care of using the appropriate underlaying
 * proper function.
 */
void Curl_freeaddrinfo(void *freethis)
{
#ifdef ENABLE_IPV6
  freeaddrinfo(freethis);
#else
  free(freethis);
#endif
}

/* --- resolve name or IP-number --- */

#ifdef ENABLE_IPV6
@@ -101,20 +115,6 @@ void curl_freeaddrinfo(struct addrinfo *freethis,

#endif

/*
 * This is a wrapper function for freeing name information in a protocol
 * independent way. This takes care of using the appropriate underlaying
 * proper function.
 */
void Curl_freeaddrinfo(void *freethis)
{
#ifdef ENABLE_IPV6
  freeaddrinfo(freethis);
#else
  free(freethis);
#endif
}

/*
 * Return name information about the given hostname and port number. If
 * successful, the 'addrinfo' is returned and the forth argument will point to
@@ -146,6 +146,7 @@ Curl_addrinfo *Curl_getaddrinfo(struct SessionHandle *data,
}
#else /* following code is IPv4-only */

#ifndef HAVE_GETHOSTBYNAME_R
/**
 * Performs a "deep" copy of a hostent into a buffer 
 * (returns a pointer to the copy).
@@ -214,6 +215,7 @@ static struct hostent* pack_hostent(char* buf, struct hostent* orig)

  return copy;
}
#endif

static char *MakeIP(unsigned long num,char *addr, int addr_len)
{