cURL / Mailing Lists / curl-library / Single Mail


Re: curl_easy_recv and disconnections

From: Daniel Stenberg <>
Date: Wed, 16 Jan 2013 15:46:03 +0100 (CET)

On Sun, 13 Jan 2013, Craig Davison wrote:

> When using curl_easy_recv(), what is the correct way to determine if the
> peer has disconnected?

That's a good question. I would've said that it would return 0 bytes read, but
you say it doesn't...

> When using the socket API, recv() will return a length of 0 when the peer
> has disconnected. In my own testing, it looks like curl_easy_recv() will
> return CURLE_UNSUPPORTED_PROTOCOL (1) in this case, but that does not seem
> to be documented anywhere. Is that the correct error code to look for?

That seems completely inappropriate and if that is indeed what happens I think
we should work on fixing it!

> Also, rarely, curl_easy_recv() will return CURLE_OK, but set n=0. What does
> this mean? Does it also mean the peer has disconnected?

Well, we need a way to differentiate EWOULDLBOCK from a closed connection, but
other than that I would say that 0 would imply disconnect but I haven't
actually studied the code right now, nor done any particular experiments...

List admin:
Received on 2013-01-16