diff --git a/main.cpp b/main.cpp index 9133966..7258688 100644 --- a/main.cpp +++ b/main.cpp @@ -35,36 +35,44 @@ input_data(istream &tin, bool prompt){ cerr << "Input bin count: "; tin >> in.bin_count; return in; -}size_t -write_data(void* items, size_t item_size, size_t item_count, void* ctx) { +} + +size_t write_data(void* items, size_t item_size, size_t item_count, void* ctx) { size_t data_size = item_size * item_count; stringstream* buffer = reinterpret_cast(ctx); buffer->write(reinterpret_cast(items), data_size); return data_size; } - Input -download(const string& address) { +download(const string& address) +{ stringstream buffer; CURL *curl = curl_easy_init(); if(curl) { CURLcode res; + curl_off_t speed; curl_easy_setopt(curl, CURLOPT_URL, address.c_str()); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer); res = curl_easy_perform(curl); + if (res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n",curl_easy_strerror(res)); exit(1); } + res = curl_easy_getinfo(curl, CURLINFO_SPEED_DOWNLOAD_T, &speed); + if(!res) + { + cerr<<"Download speed bytes/sec: " <