Ale Vesely fixed CURLOPT_INTERFACE when using a hostname

This commit is contained in:
Daniel Stenberg 2006-04-21 13:46:19 +00:00
parent 0ec96e4279
commit db03d4bdd0
3 changed files with 21 additions and 4 deletions

View File

@ -6,7 +6,14 @@
Changelog
Daniel (21 April 2006)
- Ale Vesely fixed CURLOPT_INTERFACE when using a hostname.
Daniel (19 April 2006)
- Based on previous info from Tor Arntsen, I made configure detect the Intel
ICC compiler to add a compiler option for it, in order for configure to
properly be able to detect function prototypes.
- Robson Braga Araujo provided a patch that makes libcurl less eager to close
the control connection when using FTP, for example when you remove an easy
handle from a multi stack.

View File

@ -18,10 +18,12 @@ This release includes the following changes:
This release includes the following bugfixes:
o CURLOPT_INTERFACE works with hostname
o configure runs fine with ICC
o closed control connection with FTP when easy handle was removed from multi
o curl --trace crash when built with VS2005
o SSL connect time-out
o Improved NTLM functionality
o improved NTLM functionality
o following redirects with more than one question mark in source URL
o fixed debug build crash with -d
o TFTP works on more systems
@ -39,6 +41,7 @@ This release would not have looked like this without help, code, reports and
advice from friends like these:
Dan Fandrich, Ilja van Sprundel, David McCreedy, Tor Arntsen, Xavier Bouchoux,
David Byron, Michele Bini, Ates Goral, Katie Wang, Robson Braga Araujo
David Byron, Michele Bini, Ates Goral, Katie Wang, Robson Braga Araujo,
Ale Vesely
Thanks! (and sorry if I forgot to mention someone)

View File

@ -100,6 +100,7 @@
#include "url.h" /* for Curl_safefree() */
#include "multiif.h"
#include "sockaddr.h" /* required for Curl_sockaddr_storage */
#include "inet_ntop.h"
/* The last #include file should be: */
#include "memdebug.h"
@ -288,8 +289,14 @@ static CURLcode bindlocal(struct connectdata *conn,
(void)Curl_wait_for_resolv(conn, &h);
if(h) {
/* we know data->set.device is shorter than the myhost array */
strcpy(myhost, data->set.device);
if(in == CURL_INADDR_NONE)
/* convert the resolved address, sizeof myhost >= INET_ADDRSTRLEN */
Curl_inet_ntop(h->addr->ai_addr->sa_family,
&((struct sockaddr_in*)h->addr->ai_addr)->sin_addr,
myhost, sizeof myhost);
else
/* we know data->set.device is shorter than the myhost array */
strcpy(myhost, data->set.device);
Curl_resolv_unlock(data, h);
}
}