On Wed, 26 Apr 2017, Mark Fine via curl-library wrote:

I'm making a persistent PUT to a TCP AWS ELB - it's an endless request that is continuously sending data through a CURLOPT_READFUNCTION callback. During a deploy or some other event I lose connectivity to the AWS ELB and my socket enters CLOSE_WAIT - but my curl request continues to write data to the socket indefinitely.

Wow. How is that even possible? If there's no way to send the data I would expect an error sooner or later to get returned from the send() calls libcurl uses. It makes me curious where the data goes when it can't send it anywhere...

I have a CURLOPT_XFERINFOFUNCTION callback that also continues to report bytes uploaded!! How can I break out of this situation and end the request?

libcurl is supposed to detect errors and bail out. A closed connection should cause such an error.

In my callback should I see if the socket has gone into CLOSE_WAIT?

No, that's not exposed.

Is it possible to do something better with the multi interface - I couldn't tell looking at the source code that it would behave any differently.

No, it's meant to work similarly fine using either interface!

--

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

Reply via email to