curl / Mailing Lists / curl-library / Single Mail

curl-library

libCurl 7.61.1: no response message received indicating dead connection

From: Bernd Mueller \(bermuell\) via curl-library <curl-library_at_cool.haxx.se>
Date: Tue, 9 Oct 2018 13:40:56 +0000

Hello,

I’m reaching out to you as we saw a functional change in libCurl which might not have been intended or to get advice how to cope with it on application side.

When moving from libCurl version 7.61.0 to 7.61.1 a response message is not received anymore
in case of ‘dead connection’ (‘stream_error’ in multi.c). Where as we
received in 7.61.0 a response message with error code 7="Couldn't connect to server”.

It looks like that the reason is the introduction of the state function ‘Curl_init_completed’ for state CURLM_STATE_COMPLETED which stops all the timers by calling ‘Curl_expire_clear’.

In the above mentioned error case
* “Completed” state is the next state
* as a result, all timers are stopped (which was not the case in v7.61.0)
* response message which is created afterwards (https://github.com/curl/curl/blob/432eb5f5c254ee8383b2522ce597c9219877923e/lib/multi.c#L2133,
with error code indicating the ’timed out’) is never received by the application because of the stopped timers...I assume.

I tried not stopping/clearing the timers in that ‘error’ situation and then we receive on application side the response message with the expected error code in ‘msg->extmsg.data.result’.

Is there a change required on application side to get informed about the failing attempt to send the message in that situation?

We’re using
- libCurl (7.61.1).
- multi interface to connect to a server using HTTPS.

thanks a lot for your help,
Bernd

-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette: https://curl.haxx.se/mail/etiquette.html
Received on 2018-10-09