DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

CURLOPT_OPENSOCKETDATA(3)





CURLOPT_OPENSOCKETDATA(3curl_easy_setopt optionCURLOPT_OPENSOCKETDATA(3)



NAME

     CURLOPT_OPENSOCKETDATA  -  custom  pointer  passed  to  open
     socket callback


SYNOPSIS

     #include <curl/curl.h>

     CURLcode           curl_easy_setopt(CURL            *handle,
     CURLOPT_OPENSOCKETDATA, void *pointer);


DESCRIPTION

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


DEFAULT

     The default value of this parameter is NULL.


PROTOCOLS

     All


EXAMPLE

     /* 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 */

libcurl 7.58.0      Last change: May 15, 2017                   1


CURLOPT_OPENSOCKETDATA(3curl_easy_setopt optionCURLOPT_OPENSOCKETDATA(3)


       curl_easy_setopt(curl, CURLOPT_SOCKOPTFUNCTION, sockopt_callback);

       res = curl_easy_perform(curl);

       curl_easy_cleanup(curl);
     }


AVAILABILITY

     Added in 7.17.1


RETURN VALUE

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


SEE ALSO

     CURLOPT_OPENSOCKETFUNCTION(3), CURLOPT_SOCKOPTFUNCTION(3),

libcurl 7.58.0      Last change: May 15, 2017                   2


Man(1) output converted with man2html