diff --git a/src/addons/network_http.cpp b/src/addons/network_http.cpp index b87a9367f..ff37c7e45 100644 --- a/src/addons/network_http.cpp +++ b/src/addons/network_http.cpp @@ -308,8 +308,8 @@ void NetworkHttp::downloadFileAsynchron(const std::string &file, * \param upload_now How muc has been uploaded so far. */ int NetworkHttp::progressDownload(void *clientp, - float download_total, float download_now, - float upload_total, float upload_now) + double download_total, double download_now, + double upload_total, double upload_now) { float f; if(download_now < download_total) @@ -319,8 +319,12 @@ int NetworkHttp::progressDownload(void *clientp, // 1.0 is only reached when downloadFileInternal is finished if (f>=1.0f) f=0.99f; } - else - f=1.0f; + else + { + // Don't set progress to 1.0f; this is done in loadFileInternal + // after checking curls return code! + f= download_total==0 ? 0 : 0.99f; + } network_http->m_progress.set(f); static int time_last_print=0; diff --git a/src/addons/network_http.hpp b/src/addons/network_http.hpp index 2b2eed1cd..4dd5e6507 100644 --- a/src/addons/network_http.hpp +++ b/src/addons/network_http.hpp @@ -76,9 +76,8 @@ private: bool downloadFileInternal(const std::string &file, const std::string &save_filename, bool is_asynchron); - static int progressDownload(void *clientp, float dltotal, float dlnow, - float ultotal, float ulnow); - + static int progressDownload(void *clientp, double dltotal, double dlnow, + double ultotal, double ulnow); public: NetworkHttp(); ~NetworkHttp();