]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
Armel Asselin reported that the 'running_handles' counter wasn't updated
authorDaniel Stenberg <daniel@haxx.se>
Fri, 25 Aug 2006 13:53:20 +0000 (13:53 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 25 Aug 2006 13:53:20 +0000 (13:53 +0000)
properly if you removed a "live" handle from a multi handle with
curl_multi_remove_handle().

CHANGES
RELEASE-NOTES
lib/multi.c

diff --git a/CHANGES b/CHANGES
index b57bf84b810f3094ab112fe2275ce5f572d089fc..ab0a8fd3e9e5f907f08927a1b0849809fb99d26b 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,11 @@
 
                                   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)
 - David McCreedy fixed a remaining mistake from the August 19 TYPE change.
 
index 586c01e0cd033d0903c7ab884cc4e8819f66eaa4..cc014a2b32790b85912ec62c78d8217547de9203 100644 (file)
@@ -16,7 +16,9 @@ This release includes the following changes:
 
 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 (HTTP) Expect: header disabling work better
  o (HTTP) "Expect: 100-continue" disable on second POST on re-used connection
index d822bda52140b5150dc740579eab0909d8ea72d9..c1ff12e292749d18f36eeb7a77e787a7de4b1ff2 100644 (file)
@@ -386,6 +386,10 @@ CURLMcode curl_multi_remove_handle(CURLM *multi_handle,
   if(easy) {
     /* 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. */
+    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,
        else the timenode will remain in the splay tree after