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:
parent
ddb1fb7535
commit
7e07da977c
5
CHANGES
5
CHANGES
@ -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.
|
||||||
|
@ -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)
|
||||||
|
20
lib/hostip.c
20
lib/hostip.c
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user