1
0
mirror of https://github.com/moparisthebest/curl synced 2024-08-13 17:03:50 -04:00

- Peter Sylvester made a debug featuer for Curl_resolv() that now will force

libcurl to resolve 'localhost' whatever name you use in the URL *if* you set
  the --interface option to (exactly) "LocalHost". This will enable us to
  write tests for custom hosts names but still use a local host server.
This commit is contained in:
Daniel Stenberg 2009-09-01 14:27:01 +00:00
parent ddb1fb7535
commit 7e07da977c
3 changed files with 21 additions and 6 deletions

View File

@ -7,6 +7,11 @@
Changelog Changelog
Daniel Stenberg (1 Sep 2009) Daniel Stenberg (1 Sep 2009)
- Peter Sylvester made a debug featuer for Curl_resolv() that now will force
libcurl to resolve 'localhost' whatever name you use in the URL *if* you set
the --interface option to (exactly) "LocalHost". This will enable us to
write tests for custom hosts names but still use a local host server.
- configure now tries to use pkg-config for a number of sub-dependencies even - configure now tries to use pkg-config for a number of sub-dependencies even
when cross-compiling. The key to success is then you properly setup when cross-compiling. The key to success is then you properly setup
PKG_CONFIG_PATH before invoking configure. PKG_CONFIG_PATH before invoking configure.

View File

@ -36,6 +36,6 @@ This release would not have looked like this without help, code, reports and
advice from friends like these: advice from friends like these:
Karl Moerder, Kamil Dudka, Krister Johansen, Andre Guibert de Bruet, Karl Moerder, Kamil Dudka, Krister Johansen, Andre Guibert de Bruet,
Michal Marek, Eric Wong, Guenter Knauf Michal Marek, Eric Wong, Guenter Knauf, Peter Sylvester
Thanks! (and sorry if I forgot to mention someone) Thanks! (and sorry if I forgot to mention someone)

View File

@ -391,6 +391,10 @@ Curl_cache_addr(struct SessionHandle *data,
* function is used. You MUST call Curl_resolv_unlock() later (when you're * function is used. You MUST call Curl_resolv_unlock() later (when you're
* done using this struct) to decrease the counter again. * done using this struct) to decrease the counter again.
* *
* In debug mode, we specifically test for an interface name "LocalHost"
* and resolve "localhost" instead as a means to permit test cases
* to connect to a local test server with any host name.
*
* Return codes: * Return codes:
* *
* CURLRESOLV_ERROR (-1) = error, no pointer * CURLRESOLV_ERROR (-1) = error, no pointer
@ -455,7 +459,13 @@ int Curl_resolv(struct connectdata *conn,
/* If Curl_getaddrinfo() returns NULL, 'respwait' might be set to a /* If Curl_getaddrinfo() returns NULL, 'respwait' might be set to a
non-zero value indicating that we need to wait for the response to the non-zero value indicating that we need to wait for the response to the
resolve call */ resolve call */
addr = Curl_getaddrinfo(conn, hostname, port, &respwait); addr = Curl_getaddrinfo(conn,
#ifdef DEBUGBUILD
(data->set.str[STRING_DEVICE]
&& !strcmp(data->set.str[STRING_DEVICE],
"LocalHost"))?"localhost":
#endif
hostname, port, &respwait);
if(!addr) { if(!addr) {
if(respwait) { if(respwait) {
@ -494,7 +504,7 @@ int Curl_resolv(struct connectdata *conn,
return rc; return rc;
} }
#ifdef USE_ALARM_TIMEOUT #ifdef USE_ALARM_TIMEOUT
/* /*
* This signal handler jumps back into the main libcurl code and continues * This signal handler jumps back into the main libcurl code and continues
* execution. This effectively causes the remainder of the application to run * execution. This effectively causes the remainder of the application to run
@ -538,7 +548,7 @@ int Curl_resolv_timeout(struct connectdata *conn,
struct Curl_dns_entry **entry, struct Curl_dns_entry **entry,
long timeoutms) long timeoutms)
{ {
#ifdef USE_ALARM_TIMEOUT #ifdef USE_ALARM_TIMEOUT
#ifdef HAVE_SIGACTION #ifdef HAVE_SIGACTION
struct sigaction keep_sigact; /* store the old struct here */ struct sigaction keep_sigact; /* store the old struct here */
bool keep_copysig=FALSE; /* did copy it? */ bool keep_copysig=FALSE; /* did copy it? */
@ -556,7 +566,7 @@ int Curl_resolv_timeout(struct connectdata *conn,
*entry = NULL; *entry = NULL;
#ifdef USE_ALARM_TIMEOUT #ifdef USE_ALARM_TIMEOUT
if (data->set.no_signal) if (data->set.no_signal)
/* Ignore the timeout when signals are disabled */ /* Ignore the timeout when signals are disabled */
timeout = 0; timeout = 0;
@ -619,7 +629,7 @@ int Curl_resolv_timeout(struct connectdata *conn,
*/ */
rc = Curl_resolv(conn, hostname, port, entry); rc = Curl_resolv(conn, hostname, port, entry);
#ifdef USE_ALARM_TIMEOUT #ifdef USE_ALARM_TIMEOUT
if (timeout > 0) { if (timeout > 0) {
#ifdef HAVE_SIGACTION #ifdef HAVE_SIGACTION