Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CURLINFO_ACTIVESOCKET(3)    Library Functions Manual	CURLINFO_ACTIVESOCKET(3)

NAME
     CURLINFO_ACTIVESOCKET - 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  af-
     ter  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_LAST-
     SOCKET(3) since that one is not working on all platforms.

PROTOCOLS
     This functionality affects all supported protocols

EXAMPLE
     int main(void)
     {
       CURL *curl = curl_easy_init();
       if(curl) {
	 CURLcode result;
	 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);
	 result = curl_easy_perform(curl);
	 if(result != CURLE_OK) {
	   printf("Error: %s\n", curl_easy_strerror(result));
	   curl_easy_cleanup(curl);
	   return 1;
	 }

	 /* Extract the socket from the curl handle */
	 result = curl_easy_getinfo(curl, CURLINFO_ACTIVESOCKET, &sockfd);
	 if(!result && sockfd != CURL_SOCKET_BAD) {
	   /* operate on sockfd */
	 }

	 curl_easy_cleanup(curl);
       }
     }

AVAILABILITY
     Added in curl 7.45.0

RETURN VALUE
     curl_easy_getinfo(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
     CURLINFO_LASTSOCKET(3),	CURLOPT_CONNECT_ONLY(3),   curl_easy_getinfo(3),
     curl_easy_setopt(3)

libcurl 			   2026-06-11		CURLINFO_ACTIVESOCKET(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLINFO_ACTIVESOCKET&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help