docs: connection reuse behavior for socket callbacks

Document observed behavior around connections reuse and socket
callbacks. When CURLOPT_CLOSESOCKETFUNCTION is copied and when it is
invoked.

Closes #20521
This commit is contained in:
Jayanth Vennamreddy 2026-02-04 15:59:16 -05:00 committed by Daniel Stenberg
parent 74b732f637
commit 3bc93643cb
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
2 changed files with 15 additions and 1 deletions

View file

@ -7,6 +7,7 @@ Source: libcurl
See-also:
- CURLMOPT_SOCKETDATA (3)
- CURLMOPT_TIMERFUNCTION (3)
- CURLOPT_CLOSESOCKETFUNCTION (3)
- curl_multi_socket_action (3)
Protocol:
- All
@ -97,7 +98,7 @@ writable.
## CURL_POLL_REMOVE
The specified socket/file descriptor is no longer used by libcurl for any
The specified socket or file descriptor is no longer used by libcurl for any
active transfer. It might soon be added again.
When a socket is given a CURL_POLL_REMOVE value, it might be because libcurl

View file

@ -7,6 +7,7 @@ Source: libcurl
See-also:
- CURLOPT_CLOSESOCKETDATA (3)
- CURLOPT_OPENSOCKETFUNCTION (3)
- CURLMOPT_SOCKETFUNCTION (3)
Protocol:
- All
Added-in: 7.21.7
@ -47,6 +48,18 @@ after the easy handle has been cleaned up. The callback and data is
inherited by a new connection and that connection may live longer
than the transfer itself in the multi/share handle's connection cache.
# NOTES ON CONNECTION REUSE
The close socket callback is invoked when libcurl closes a socket it owns.
When using the multi interface, the callback and
CURLOPT_CLOSESOCKETDATA(3) are copied from the *first* easy handle that
creates the socket used for a connection; changing this option on a subsequent
easy handle that reuses the same connection has no effect for that connection.
The callback is stored with the connection because the connection and its
associated socket may outlive the easy handle that created it, so that libcurl
can still invoke it when the socket is closed even after that handle has been
cleaned up.
# DEFAULT
Use the standard socket close function.