On Tue, 14 Jan 2025, Aleksander Mazur wrote:
I apparently misunderstood this paragraph as a hint of how libcurl works
internally (that it simply won't reuse the underlying connection) rather
than "application MUST NOT pass such easy handle to curl_easy_perform
again".
Yeah, clarifying in https://github.com/curl/curl/pull/16002
Basically when you "take over" a connection like that, there is no return as
the state of the connection cannot be safely known and understood by libcurl
again so it is a single use that cannot be used again.
This, because there is no explicit "close" or "I'm done" function so the only
way you can tell libcurl you are done with this connection is to call
curl_easy_cleanup().
So let's say I call curl_easy_cleanup + curl_easy_init before each
reconnection. Will libcurl reuse old TLS context and resolver cache?
Nope. Unless you make it so with a share object or using the multi interface.
--
/ daniel.haxx.se || https://rock-solid.curl.dev
--
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette: https://curl.se/mail/etiquette.html