diff options
author | Nikias Bassen | 2012-02-13 02:50:43 +0100 |
---|---|---|
committer | Nikias Bassen | 2012-02-13 02:50:43 +0100 |
commit | f8ddc75b339351d9536b2df6868d5f92702742f4 (patch) | |
tree | f4f22647198f13159ea65065f3911949c7ab5c95 /src/download.c | |
parent | 9dd1484f561edf6f86f5e6cb128ddee93fbc9652 (diff) | |
download | idevicerestore-f8ddc75b339351d9536b2df6868d5f92702742f4.tar.gz idevicerestore-f8ddc75b339351d9536b2df6868d5f92702742f4.tar.bz2 |
download: add progress bar for download_to_file function
Diffstat (limited to 'src/download.c')
-rw-r--r-- | src/download.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/download.c b/src/download.c index ebf5da4..cbde282 100644 --- a/src/download.c +++ b/src/download.c @@ -82,6 +82,17 @@ int download_to_buffer(const char* url, char** buf, uint32_t* length) return res; } +int download_progress(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow) +{ + double p = (dlnow / dltotal) * 100; + + if (p < 100.0f) { + print_progress_bar(p); + } + + return 0; +} + int download_to_file(const char* url, const char* filename) { int res = 0; @@ -100,6 +111,8 @@ int download_to_file(const char* url, const char* filename) curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, (curl_write_callback)&fwrite); curl_easy_setopt(handle, CURLOPT_WRITEDATA, f); + curl_easy_setopt(handle, CURLOPT_PROGRESSFUNCTION, (curl_progress_callback)&download_progress); + curl_easy_setopt(handle, CURLOPT_NOPROGRESS, 0); curl_easy_setopt(handle, CURLOPT_USERAGENT, "InetURL/1.0"); curl_easy_setopt(handle, CURLOPT_FOLLOWLOCATION, 1); curl_easy_setopt(handle, CURLOPT_URL, url); |