On Thu, 23 Mar 2017 00:05:32 +0100 (CET)
Daniel Stenberg <[email protected]> wrote:

> On Wed, 22 Mar 2017, Deweloper wrote:
> > Later I found this information by browsing the curl source code (inside the 
> > body of Curl_getconnectinfo). Maybe it's worth including in the manual page 
> > of CURLINFO_ACTIVESOCKET ?  
> 
> Sounds like a good idea. You have any wording to suggest that would've helped 
> you?

Well, I'm still trying to collect necessary information...

> A connection you've "taken over" from libcurl is tainted and libcurl can
> never again reuse that since the status and protocol of it are totally
> unknown.
> 
> But I'm not sure this needs to be taken into account much. I think you can 
> reuse an easy handle but it won't (shouldn't!) reuse the previous connection.
> 
> > Isn't it allowed to call curl_easy_perform again on the same handle?  
> 
> It should be. I wonder if it isn't also actually okay to reuse an easy
> handle, contrary to what the documentation says...

If I understand correctly, a "connection" is an entity specific to 
implementation of libcurl, inaccessible by API and outside of scope of 
application's interest. Does "taking over a connection" mean taking ownership 
of the socket obtained by calling curl_easy_getinfo(CURLINFO_ACTIVESOCKET), 
including the need to close() it? I mean, won't libcurl never ever do any 
operation on the socket it returned to the application (especially closing it), 
apart when directed to do so by calling curl_easy_recv() or curl_easy_send()?

Now my app checks if curl_easy_recv or curl_easy_send returned something other 
than CURLE_OK and CURLE_AGAIN, or if curl_easy_recv returned zero length. In 
such cases it closes the socket provided earlier by CURLINFO_ACTIVESOCKET, then 
calls curl_multi_remove_handle, and some time later calls curl_multi_add_handle 
using the same easy handle.
Does this make sense?

-- 
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Reply via email to