Commit ab60a124 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Starting now, adding an easy handle to a multi stack that was already added

to a multi stack will cause CURLM_BAD_EASY_HANDLE to get returned.
parent 2d38e518
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -7,6 +7,9 @@
                                  Changelog

Daniel (12 October 2006)
- Starting now, adding an easy handle to a multi stack that was already added
  to a multi stack will cause CURLM_BAD_EASY_HANDLE to get returned.

- Jeff Pohlmeyer has been working with the hiperfifo.c example source code,
  and while doing so it became apparent that the current timeout system for
  the socket API really was a bit awkward since it become quite some work to
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ This release includes the following changes:

This release includes the following bugfixes:

 o curl_multi_add_handle on an already added handle now fails gracefully
 o multi interface crash if bad function call order was used for cleanup
 o put a new URL in saved cookie jar files
 o configure --with-gssapi-libs
+3 −1
Original line number Diff line number Diff line
@@ -219,7 +219,9 @@ Things are fine.
.IP "CURLM_BAD_HANDLE (1)"
The passed-in handle is not a valid CURLM handle.
.IP "CURLM_BAD_EASY_HANDLE (2)"
An easy handle was not good/valid.
An easy handle was not good/valid. It could mean that it isn't an easy handle
at all, or possibly that the handle already is in used by this or another
multi handle.
.IP "CURLM_OUT_OF_MEMORY (3)"
You are doomed.
.IP "CURLM_INTERNAL_ERROR (4)"
+4 −2
Original line number Diff line number Diff line
@@ -373,8 +373,10 @@ CURLMcode curl_multi_add_handle(CURLM *multi_handle,
  if(!GOOD_EASY_HANDLE(easy_handle))
    return CURLM_BAD_EASY_HANDLE;

  /* TODO: add some kind of code that prevents a user from being able to
     add the same handle more than once! */
  /* Prevent users to add the same handle more than once! */
  if(((struct SessionHandle *)easy_handle)->multi)
    /* possibly we should create a new unique error code for this condition */
    return CURLM_BAD_EASY_HANDLE;

  /* Now, time to add an easy handle to the multi stack */
  easy = (struct Curl_one_easy *)calloc(sizeof(struct Curl_one_easy), 1);