quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

CURLOPT_XFERINFODATA.md (1593B)


      1 ---
      2 c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
      3 SPDX-License-Identifier: curl
      4 Title: CURLOPT_XFERINFODATA
      5 Section: 3
      6 Source: libcurl
      7 See-also:
      8   - CURLOPT_NOPROGRESS (3)
      9   - CURLOPT_VERBOSE (3)
     10   - CURLOPT_XFERINFOFUNCTION (3)
     11 Protocol:
     12   - All
     13 Added-in: 7.32.0
     14 ---
     15 
     16 # NAME
     17 
     18 CURLOPT_XFERINFODATA - pointer passed to the progress callback
     19 
     20 # SYNOPSIS
     21 
     22 ~~~c
     23 #include <curl/curl.h>
     24 
     25 CURLcode curl_easy_setopt(CURL *handle, CURLOPT_XFERINFODATA, void *pointer);
     26 ~~~
     27 
     28 # DESCRIPTION
     29 
     30 Pass a *pointer* that is untouched by libcurl and passed as the first
     31 argument in the progress callback set with CURLOPT_XFERINFOFUNCTION(3).
     32 
     33 This is an alias for CURLOPT_PROGRESSDATA(3).
     34 
     35 # DEFAULT
     36 
     37 NULL
     38 
     39 # %PROTOCOLS%
     40 
     41 # EXAMPLE
     42 
     43 ~~~c
     44 struct progress {
     45   char *private;
     46   size_t size;
     47 };
     48 
     49 static int progress_cb(void *clientp,
     50                        curl_off_t dltotal,
     51                        curl_off_t dlnow,
     52                        curl_off_t ultotal,
     53                        curl_off_t ulnow)
     54 {
     55   struct progress *memory = clientp;
     56   printf("private ptr: %p\n", memory->private);
     57   /* use the values */
     58 
     59   return 0; /* all is good */
     60 }
     61 
     62 int main(void)
     63 {
     64   CURL *curl = curl_easy_init();
     65   if(curl) {
     66     struct progress data;
     67 
     68     /* pass struct to callback  */
     69     curl_easy_setopt(curl, CURLOPT_XFERINFODATA, &data);
     70     curl_easy_setopt(curl, CURLOPT_XFERINFOFUNCTION, progress_cb);
     71   }
     72 }
     73 ~~~
     74 
     75 # %AVAILABILITY%
     76 
     77 # RETURN VALUE
     78 
     79 curl_easy_setopt(3) returns a CURLcode indicating success or error.
     80 
     81 CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
     82 libcurl-errors(3).