1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 08:08:50 -05:00

Armel Asselin reported that the 'running_handles' counter wasn't updated

properly if you removed a "live" handle from a multi handle with
curl_multi_remove_handle().
This commit is contained in:
Daniel Stenberg 2006-08-25 13:53:20 +00:00
parent da48a6ba87
commit 2ff609dd43
3 changed files with 12 additions and 1 deletions

View File

@ -6,6 +6,11 @@
Changelog Changelog
Daniel (25 August 2006)
- Armel Asselin reported that the 'running_handles' counter wasn't updated
properly if you removed a "live" handle from a multi handle with
curl_multi_remove_handle().
Daniel (22 August 2006) Daniel (22 August 2006)
- David McCreedy fixed a remaining mistake from the August 19 TYPE change. - David McCreedy fixed a remaining mistake from the August 19 TYPE change.

View File

@ -16,7 +16,9 @@ This release includes the following changes:
This release includes the following bugfixes: This release includes the following bugfixes:
p (FTP) EPRT transfers with IPv6 didn't work properly o running_handles' counter wasn't always updated properly when
curl_multi_remove_handle() was used
o (FTP) EPRT transfers with IPv6 didn't work properly
o (FTP) SINGLECWD mode and using files in the root dir o (FTP) SINGLECWD mode and using files in the root dir
o (HTTP) Expect: header disabling work better o (HTTP) Expect: header disabling work better
o (HTTP) "Expect: 100-continue" disable on second POST on re-used connection o (HTTP) "Expect: 100-continue" disable on second POST on re-used connection

View File

@ -386,6 +386,10 @@ CURLMcode curl_multi_remove_handle(CURLM *multi_handle,
if(easy) { if(easy) {
/* If the 'state' is not INIT or COMPLETED, we might need to do something /* If the 'state' is not INIT or COMPLETED, we might need to do something
nice to put the easy_handle in a good known state when this returns. */ nice to put the easy_handle in a good known state when this returns. */
if(easy->state != CURLM_STATE_COMPLETED)
/* this handle is "alive" so we need to count down the total number of
alive connections when this is removed */
multi->num_alive--;
/* The timer must be shut down before easy->multi is set to NULL, /* The timer must be shut down before easy->multi is set to NULL,
else the timenode will remain in the splay tree after else the timenode will remain in the splay tree after