- Patrick Scott found a rather large memory leak when using the multi
interface and setting CURLMOPT_MAXCONNECTS to something less than the number of handles you add to the multi handle. All the connections that didn't fit in the cache would not be properly disconnected nor freed!
This commit is contained in:
Родитель
f0332c0b58
Коммит
d4ac3d53fc
5
CHANGES
5
CHANGES
|
@ -7,6 +7,11 @@
|
||||||
Changelog
|
Changelog
|
||||||
|
|
||||||
Daniel Stenberg (2 Feb 2009)
|
Daniel Stenberg (2 Feb 2009)
|
||||||
|
- Patrick Scott found a rather large memory leak when using the multi
|
||||||
|
interface and setting CURLMOPT_MAXCONNECTS to something less than the number
|
||||||
|
of handles you add to the multi handle. All the connections that didn't fit
|
||||||
|
in the cache would not be properly disconnected nor freed!
|
||||||
|
|
||||||
- Craig A West brought us: libcurl now defaults to do CONNECT with HTTP
|
- Craig A West brought us: libcurl now defaults to do CONNECT with HTTP
|
||||||
version 1.1 instead of 1.0 like before. This change also introduces the new
|
version 1.1 instead of 1.0 like before. This change also introduces the new
|
||||||
proxy type for libcurl called 'CURLPROXY_HTTP_1_0' that then allows apps to
|
proxy type for libcurl called 'CURLPROXY_HTTP_1_0' that then allows apps to
|
||||||
|
|
|
@ -25,6 +25,7 @@ This release includes the following bugfixes:
|
||||||
o FTP ;type=i URLs now work with CURLOPT_PROXY_TRANSFER_MODE in Turkish locale
|
o FTP ;type=i URLs now work with CURLOPT_PROXY_TRANSFER_MODE in Turkish locale
|
||||||
o realms with quoted quotation marks in HTTP Digest headers
|
o realms with quoted quotation marks in HTTP Digest headers
|
||||||
o VC9 makefiles are now really included
|
o VC9 makefiles are now really included
|
||||||
|
o multi interface memory leak with CURLMOPT_MAXCONNECTS set
|
||||||
|
|
||||||
This release includes the following known bugs:
|
This release includes the following known bugs:
|
||||||
|
|
||||||
|
@ -34,6 +35,7 @@ This release would not have looked like this without help, code, reports and
|
||||||
advice from friends like these:
|
advice from friends like these:
|
||||||
|
|
||||||
Lisa Xu, Daniel Fandrich, Craig A West, Alexey Borzov, Sharad Gupta,
|
Lisa Xu, Daniel Fandrich, Craig A West, Alexey Borzov, Sharad Gupta,
|
||||||
Peter Sylvester, Chad Monroe, Markus Moeller, Yang Tse, Scott Cantor
|
Peter Sylvester, Chad Monroe, Markus Moeller, Yang Tse, Scott Cantor,
|
||||||
|
Patrick Scott
|
||||||
|
|
||||||
Thanks! (and sorry if I forgot to mention someone)
|
Thanks! (and sorry if I forgot to mention someone)
|
||||||
|
|
|
@ -4804,8 +4804,12 @@ CURLcode Curl_done(struct connectdata **connp,
|
||||||
state it is for re-using, so we're forced to close it. In a perfect world
|
state it is for re-using, so we're forced to close it. In a perfect world
|
||||||
we can add code that keep track of if we really must close it here or not,
|
we can add code that keep track of if we really must close it here or not,
|
||||||
but currently we have no such detail knowledge.
|
but currently we have no such detail knowledge.
|
||||||
|
|
||||||
|
connectindex == -1 here means that the connection has no spot in the
|
||||||
|
connection cache and thus we must disconnect it here.
|
||||||
*/
|
*/
|
||||||
if(data->set.reuse_forbid || conn->bits.close || premature) {
|
if(data->set.reuse_forbid || conn->bits.close || premature ||
|
||||||
|
(-1 == conn->connectindex)) {
|
||||||
CURLcode res2 = Curl_disconnect(conn); /* close the connection */
|
CURLcode res2 = Curl_disconnect(conn); /* close the connection */
|
||||||
|
|
||||||
/* If we had an error already, make sure we return that one. But
|
/* If we had an error already, make sure we return that one. But
|
||||||
|
|
Загрузка…
Ссылка в новой задаче