diff --git a/CHANGES b/CHANGES index db6b182fc..3b15134f1 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,13 @@ Changelog +Daniel Stenberg (7 Oct 2008) +- Fixed CURLINFO_PRIMARY_IP: When libcurl created a connection to host A then + the app re-used the handle to do a connection to host B and then again + re-used the handle to host A, it would not update the info with host A's IP + address (due to the connection being re-used) but it would instead report + the info from host B. + Yang Tse (7 Oct 2008) - Added --enable-optimize configure option to enable and disable compiler optimizations to allow decoupled setting from --enable-debug. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 35a68c650..6ee074673 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -32,6 +32,7 @@ This release includes the following bugfixes: o CURLINFO_REDIRECT_URL didn't work with the multi interface o CURLOPT_RANGE now works for SFTP downloads o FTP SIZE response 550 now causes CURLE_REMOTE_FILE_NOT_FOUND + o CURLINFO_PRIMARY_IP fixed for persistent connection re-use cases This release includes the following known bugs: diff --git a/lib/url.c b/lib/url.c index bb09d2fd3..17b34c68e 100644 --- a/lib/url.c +++ b/lib/url.c @@ -4238,6 +4238,12 @@ static CURLcode create_conn(struct SessionHandle *data, infof(data, "Re-using existing connection! (#%ld) with host %s\n", conn->connectindex, conn->proxy.name?conn->proxy.dispname:conn->host.dispname); + /* copy this IP address to the common buffer for the easy handle so that + the address can actually survice the removal of this connection. strcpy + is safe since the target buffer is big enough to hold the largest + possible IP address */ + strcpy(data->info.ip, conn->ip_addr_str); + } else { /*