cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Revisiting curl_multi_info_read() returning result of CURLE_RECV_ERROR

From: Daniel Stenberg <daniel_at_haxx.se>
Date: Thu, 21 Apr 2016 08:48:03 +0200 (CEST)

On Thu, 21 Apr 2016, KS Lee wrote:

> The error code was returned from a call to curl_multi_info_read()

Yes, but that function only kept the return code for you since before. It was
the curl_multi_perform() call prior to that that drove the transfer into that
error and stored it. I was more hoping that you would consider rolling up your
sleeves and tried to figure out where in the libcurl code this happens.

My guess is:

lib/sendf.c:Curl_read() gets called and from that

lib/vtls/openssl.c:ossl_recv() gets called, and that SSL_read() function call
in there returns an error. That's a call to OpenSSL.

> The Wireshark forum speaks of a client going away prematurely i.e closing
> the connection, causing a RST to be sent.

Your network capture also showed the connection going away, getting closed.

> What perplexed us was why in a proxy environment, the wireshark trades did
> not show a RST at all.

When you insert a proxy between the server and the client, the proxy will
terminate the TCP connection and start its own to the remote server, so it
will not show the exact same behavior as the server does on the TCP level.

-- 
  / daniel.haxx.se
-------------------------------------------------------------------
List admin: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:  https://curl.haxx.se/mail/etiquette.html
Received on 2016-04-21