Provided by: libcurl4-doc_7.81.0-1ubuntu1.20_all bug

NAME

       CURLINFO_ACTIVESOCKET - get the active socket

SYNOPSIS

       #include <curl/curl.h>

       CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_ACTIVESOCKET,
                                  curl_socket_t *socket);

DESCRIPTION

       Pass  a  pointer  to  a  curl_socket_t  to  receive the most recently active socket used for the transfer
       connection by this curl session. If the socket is no longer valid, CURL_SOCKET_BAD is returned. When  you
       are  finished working with the socket, you must call curl_easy_cleanup(3) as usual on the easy handle and
       let libcurl close the socket and cleanup other resources associated with the handle. This option  returns
       the  active  socket  only  after  the  transfer  is  complete,  and is typically used in combination with
       CURLOPT_CONNECT_ONLY(3), which skips the transfer phase.

       CURLINFO_ACTIVESOCKET(3) was added as a replacement for CURLINFO_LASTSOCKET(3)  since  that  one  is  not
       working on all platforms.

PROTOCOLS

       All

EXAMPLE

       CURL *curl = curl_easy_init();
       if(curl) {
         curl_socket_t sockfd;
         curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");

         /* Do not do the transfer - only connect to host */
         curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 1L);
         res = curl_easy_perform(curl);

         /* Extract the socket from the curl handle */
         res = curl_easy_getinfo(curl, CURLINFO_ACTIVESOCKET, &sockfd);

         if(res != CURLE_OK) {
           printf("Error: %s\n", curl_easy_strerror(res));
           return 1;
         }
       }

AVAILABILITY

       Added in 7.45.0

RETURN VALUE

       Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.

SEE ALSO

       curl_easy_getinfo(3), curl_easy_setopt(3), CURLINFO_LASTSOCKET(3),