dwww Home | Manual pages | Find package

CURLOPT_CL...KETFUNCTION(3) Library Functions ManualCURLOPT_CL...KETFUNCTION(3)

NAME
       CURLOPT_CLOSESOCKETFUNCTION - callback to socket close replacement

SYNOPSIS
       #include <curl/curl.h>

       int closesocket_callback(void *clientp, curl_socket_t item);

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CLOSESOCKETFUNCTION,
                                 closesocket_callback);

DESCRIPTION
       Pass  a pointer to your callback function, which should match the proto-
       type shown above.

       This callback function gets called by libcurl instead of the close(3) or
       closesocket(3) call when sockets are closed (not for any other file  de-
       scriptors).  This  is pretty much the reverse to the CURLOPT_OPENSOCKET-
       FUNCTION(3) option. Return 0 to signal success and 1 if there was an er-
       ror.

       The clientp pointer is set with CURLOPT_CLOSESOCKETDATA(3). item is  the
       socket libcurl wants to be closed.

DEFAULT
       Use the standard socket close function.

PROTOCOLS
       This functionality affects all supported protocols

EXAMPLE
       struct priv {
         void *custom;
       };

       static int closesocket(void *clientp, curl_socket_t item)
       {
         struct priv *my = clientp;
         printf("our ptr: %p\n", my->custom);

         printf("libcurl wants to close %d now\n", (int)item);
         return 0;
       }

       int main(void)
       {
         struct priv myown;
         CURL *curl = curl_easy_init();

         /* call this function to close sockets */
         curl_easy_setopt(curl, CURLOPT_CLOSESOCKETFUNCTION, closesocket);
         curl_easy_setopt(curl, CURLOPT_CLOSESOCKETDATA, &myown);

         curl_easy_perform(curl);
         curl_easy_cleanup(curl);
       }

AVAILABILITY
       Added in curl 7.21.7

RETURN VALUE
       curl_easy_setopt(3) returns a CURLcode indicating success or error.

       CURLE_OK  (0) means everything was OK, non-zero means an error occurred,
       see libcurl-errors(3).

SEE ALSO
       CURLOPT_CLOSESOCKETDATA(3), CURLOPT_OPENSOCKETFUNCTION(3)

libcurl                            2026-07-12       CURLOPT_CL...KETFUNCTION(3)

Generated by dwww version 1.16 on Fri Oct 2 17:13:36 CEST 2026.