curl / libcurl / API / curl_easy_setopt / CURLOPT_PREREQDATA

CURLOPT_PREREQDATA explained

Name

CURLOPT_PREREQDATA - pointer passed to the pre-request callback

Synopsis

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

Description

Pass a pointer that is untouched by libcurl and passed as the first argument in the pre-request callback set with CURLOPT_PREREQFUNCTION.

Default

NULL

Protocols

This functionality affects all supported protocols

Example

 struct priv {   void *custom; };   static int prereq_callback(void *clientp,   char *conn_primary_ip,   char *conn_local_ip,   int conn_primary_port,   int conn_local_port) {   printf("Connection made to %s:%d\n", conn_primary_ip, conn_primary_port);   return CURL_PREREQFUNC_OK; }   int main(void) {   struct priv prereq_data;   CURL *curl = curl_easy_init();   if(curl) {   curl_easy_setopt(curl, CURLOPT_PREREQFUNCTION, prereq_callback);   curl_easy_setopt(curl, CURLOPT_PREREQDATA, &prereq_data);   curl_easy_perform(curl);   } } 

Availability

Added in curl 7.80.0

Return value

curl_easy_setopt returns a CURLcode indicating success or error.

CURLE_OK (0) means everything was OK, non-zero means an error occurred, see libcurl-errors.

See also

CURLINFO_PRIMARY_IP(3), CURLINFO_PRIMARY_PORT(3), CURLOPT_PREREQFUNCTION(3)

This HTML page was made with roffit.