GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
CURLOPT_OPENSOCKETDATA(3) curl_easy_setopt options CURLOPT_OPENSOCKETDATA(3)

CURLOPT_OPENSOCKETDATA - pointer passed to open socket callback

#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_OPENSOCKETDATA, void *pointer);

Pass a pointer that will be untouched by libcurl and passed as the first argument in the opensocket callback set with CURLOPT_OPENSOCKETFUNCTION(3).

The default value of this parameter is NULL.

All

/* make libcurl use the already established socket 'sockfd' */
static curl_socket_t opensocket(void *clientp,
                                curlsocktype purpose,
                                struct curl_sockaddr *address)
{
  curl_socket_t sockfd;
  sockfd = *(curl_socket_t *)clientp;
  /* the actual externally set socket is passed in via the OPENSOCKETDATA
     option */
  return sockfd;
}
static int sockopt_callback(void *clientp, curl_socket_t curlfd,
                            curlsocktype purpose)
{
  /* This return code was added in libcurl 7.21.5 */
  return CURL_SOCKOPT_ALREADY_CONNECTED;
}
curl = curl_easy_init();
if(curl) {
  /* libcurl will internally think that you connect to the host
   * and port that you specify in the URL option. */
  curl_easy_setopt(curl, CURLOPT_URL, "http://99.99.99.99:9999");
  /* call this function to get a socket */
  curl_easy_setopt(curl, CURLOPT_OPENSOCKETFUNCTION, opensocket);
  curl_easy_setopt(curl, CURLOPT_OPENSOCKETDATA, &sockfd);
  /* call this function to set options for the socket */
  curl_easy_setopt(curl, CURLOPT_SOCKOPTFUNCTION, sockopt_callback);
  res = curl_easy_perform(curl);
  curl_easy_cleanup(curl);
}

Added in 7.17.1

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

CURLOPT_OPENSOCKETFUNCTION(3), CURLOPT_SOCKOPTFUNCTION(3),
November 26, 2021 libcurl 7.83.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.