CURLOPT_CHUNK_DATA(3)

CURLOPT_CHUNK_DATA3

Pointer passed to the ftp chunk callbacks

Usage

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

Overview

Pass a pointer that is untouched by libcurl and passed as the ptr argument to the CURLOPT_CHUNK_BGN_FUNCTION(3) and CURLOPT_CHUNK_END_FUNCTION(3).

Default

NULL

Protocols

FTP

Examples

#include <stdio.h>
struct callback_data {
   FILE *output;
};
static long file_is_coming(struct curl_fileinfo *finfo,
                           void *ptr,
                           int remains)
{
  struct callback_data *data = ptr;
  printf("%3d %40s %10luB ", remains, finfo->filename,
         (unsigned long)finfo->size);
  switch(finfo->filetype) {
  case CURLFILETYPE_DIRECTORY:
    printf(" DIR\n");
    break;
  case CURLFILETYPE_FILE:
    printf("FILE ");
    break;
  default:
    printf("OTHER\n");
    break;
  }
  if(finfo->filetype == CURLFILETYPE_FILE) {
    /* do not transfer files >= 50B */
    if(finfo->size > 50) {
      printf("SKIPPED\n");
      return CURL_CHUNK_BGN_FUNC_SKIP;
    }
    data->output = fopen(finfo->filename, "wb");
    if(!data->output) {
      return CURL_CHUNK_BGN_FUNC_FAIL;
    }
  }
  return CURL_CHUNK_BGN_FUNC_OK;
}
int main()
{
  /* data for callback */
  struct callback_data callback_info;
  CURL *curl = curl_easy_init();
  /* callback is called before download of concrete file started */
  curl_easy_setopt(curl, CURLOPT_CHUNK_BGN_FUNCTION, file_is_coming);
  curl_easy_setopt(curl, CURLOPT_CHUNK_DATA, &callback_info);
}

Return value

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

Releases

79 releases since OS X 10.10; the text changed 14 times.

  1. 10.10–10.10.4
  2. 10.10.5–10.11.6
  3. 10.12–10.12.5
  4. 10.12.6–10.14.6
  5. 10.15–11.5
  6. 12.0.1–12.2
  7. 12.3–12.5
  8. 13.0
  9. 13.1
  10. 13.2
  11. 13.3
  12. 13.4
  13. 13.5–14.1
  14. 14.2–14.4
  15. 14.5–26.5

Availability

Added in 7.21.0

From curl 166.0.0.0.1 in macOS 26.5. Parsed by carta from the page's man source.