cURL / Mailing Lists / curl-library / Single Mail


Fwd: SSL read error 10054

From: Jeff McKay <>
Date: Tue, 02 Oct 2012 16:41:12 -0700

Further to my original question below, we did an analysis of the tcp
traffic and found
that the last few events are as follows:

application sends a POST to server
server responds with an ACK
2 minutes later, server resets the connection

The curl logging in my application shows the last thing happening is the
POST, then nothing
further. So it seems to me that curl is failing to respond to that last
ACK. Any idea why that
might be? As I mentioned, at this point the application has been
running for a while, and
has done 557 successful posts (it always aborts at the same transaction,
although I have
modified the data to make sure that is not the issue.)

-------- Original Message --------
Subject: SSL read error 10054
Date: Mon, 01 Oct 2012 09:55:53 -0700
From: Jeff McKay <>

I have a Windows C++ application using libcurl 7.26. For one particular
customer, the
application runs normally for quite a while, then on a POST, we receive
this error:

SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054

There is an approximately 2 minute delay from the time of the POST to when
the error occurs. I understand that the error 10054 comes from the
tcp layer and means that the peer shut down the connection, so at first
this does not seem to be a libcurl problem. However this customer is also
using a previous version of our software, which uses a much older libcurl
(not sure which version, but at least 3 years earlier than 7.26). And of
course the error does not happen with that version. There may be some
other differences in the curl options we set, but very little, if any. This
customer is using a proxy server, if that has any bearing. Does anybody
an idea what could cause this error, that is under my control to fix?
The options we are setting for the POST are shown below.

curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_USERAGENT, gAgent);
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1);
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 30);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);
curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 50);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
curl_easy_setopt(curl, CURLOPT_READFUNCTION, ReadMemoryCallback);
curl_easy_setopt(curl, CURLOPT_SSLENGINE_DEFAULT, 1);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1);
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
curl_easy_setopt(curl, CURLOPT_USERPWD, userpass);
curl_easy_setopt(curl, CURLOPT_POST, 1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, NULL);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, gslist);
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (curl_off_t)fsize);
curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, HttpHeaderData);
curl_easy_setopt(curl, CURLOPT_PROXY, proxy);
curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, proxyuserpwd);

List admin:
Received on 2012-10-03