On Wed, 26 Jan 2022, Silas via curl-library wrote:
I just discovered I can only reproduce this behaviour when using HTTPS. Maybe a openssl thing? The same program using plain HTTP can get through network changes.
I don't think it's related to TLS. If it was, you should be able to repro using HTTPS using HTTP/1.1 as well. I rather suspect it is about HTTP/2 and that each transfer is a stream inside a connection, so a failed transfer only kills that stream and not the connection.
When you spot the problem with HTTP/2. Are the three transfers to the same host? Are they perhaps even using the same connection?
lib/url.c:extract_if_dead() is meant to detect "dead" connections.
Should it use the existing connection if I'm calling curl_easy_cleanup()?
You mean you called cleanup on the *the previous* transfer and now you get that same connection reused? That's expected, since for the multi interface, the connection pool is held in the multi handle.
-- / daniel.haxx.se | Commercial curl support up to 24x7 is available! | Private help, bug fixes, support, ports, new features | https://curl.se/support.html -- Unsubscribe: https://lists.haxx.se/listinfo/curl-library Etiquette: https://curl.haxx.se/mail/etiquette.html