GNURLINFO_ACTIVESOCKET(3)

πŸ“¦ version 7.72.0, in nixos 26.05, nixpkgs unstable

✨ GNURLINFO_ACTIVESOCKET β€” get the active socket ✨

okay so real quick bestie, this one lives in the curl_easy_getinfo options corner of the manual-verse, and it's literally the glow-up replacement for that other socket getter. let's get into it πŸ’…


🌸 NAME 🌸

CURLINFO_ACTIVESOCKET β€” get the active socket

πŸŽ€ SYNOPSIS πŸŽ€

#include <gnurl/curl.h>

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

πŸ’– DESCRIPTION πŸ’–

so you pass a pointer to a curl_socket_t and it receives the most recently active socket used for the transfer connection by this curl session. that's it, that's the whole vibe 🫢

if the socket is no longer valid, CURL_SOCKET_BAD is returned. no cap, it just goes bad-girl mode and hands you that.

when you're 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. like, don't try to do it yourself, that's libcurl's job, let the icon cook πŸ”₯

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.

and here's the lore: CURLINFO_ACTIVESOCKET(3) was added as a replacement for CURLINFO_LASTSOCKET(3) since that one isn't working on all platforms. out with the old, in with the new, periodt ✨

πŸ¦‹ PROTOCOLS πŸ¦‹

All

πŸ“ EXAMPLE πŸ“

CURL *curl = curl_easy_init();
if(curl) {
  curl_socket_t sockfd;
  curl_easy_setopt(curl, CURLOPT_URL, "http://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 β€” she's a 2015 girly πŸ‘‘

⭐ RETURN VALUE ⭐

Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. simple as that, bestie πŸ’œ

πŸ‘‘ SEE ALSO πŸ‘‘


okay that's the whole page, mwah πŸ’‹ this little transmission came to you courtesy of libcurl 7.44.0, dated 12 Sep 2015 β€” go get that socket, you absolute main character πŸ§šβ€β™€οΈπŸŒΈ

πŸ“¦ where this page comes from