diff --git a/docs/examples/multi-uv.c b/docs/examples/multi-uv.c index f91eb01c94800e..e1d7276630094a 100644 --- a/docs/examples/multi-uv.c +++ b/docs/examples/multi-uv.c @@ -90,6 +90,7 @@ void add_download(const char *url, int num) handle = curl_easy_init(); curl_easy_setopt(handle, CURLOPT_WRITEDATA, file); + curl_easy_setopt(handle, CURLOPT_PRIVATE, file); curl_easy_setopt(handle, CURLOPT_URL, url); curl_multi_add_handle(curl_handle, handle); fprintf(stderr, "Added download %s -> %s\n", url, filename); @@ -101,16 +102,21 @@ static void check_multi_info(void) char *done_url; CURLMsg *message; int pending; + FILE *file; while ((message = curl_multi_info_read(curl_handle, &pending))) { switch (message->msg) { case CURLMSG_DONE: curl_easy_getinfo(message->easy_handle, CURLINFO_EFFECTIVE_URL, &done_url); + curl_easy_getinfo(message->easy_handle, CURLINFO_PRIVATE, &file); printf("%s DONE\n", done_url); curl_multi_remove_handle(curl_handle, message->easy_handle); curl_easy_cleanup(message->easy_handle); + if (file) { + fclose(file); + } break; default: