X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Faddon%2Fdownloader.cpp;h=905dd2b5d4d0f54184d1c871a8789b95935dcabb;hb=HEAD;hp=c10bea464b8a4e61ca756f1ba42f8c6ffadd4736;hpb=4b0d6bca7ead45c1ffe5a07f30c10ea5ae227918;p=supertux.git diff --git a/src/addon/downloader.cpp b/src/addon/downloader.cpp index c10bea464..905dd2b5d 100644 --- a/src/addon/downloader.cpp +++ b/src/addon/downloader.cpp @@ -18,6 +18,7 @@ #include "addon/downloader.hpp" #include +#include #include #include #include @@ -81,8 +82,8 @@ public: m_id(id), m_url(url), m_handle(), - m_error_buffer({'\0'}), - m_status(new TransferStatus(downloader, id)), + m_error_buffer({{'\0'}}), + m_status(new TransferStatus(m_downloader, id)), m_fout(PHYSFS_openWrite(outfile.c_str()), PHYSFS_close) { if (!m_fout) @@ -152,7 +153,7 @@ public: return size * nmemb; } - void on_progress(double dltotal, double dlnow, + int on_progress(double dltotal, double dlnow, double ultotal, double ulnow) { m_status->dltotal = static_cast(dltotal); @@ -160,6 +161,8 @@ public: m_status->ultotal = static_cast(ultotal); m_status->ulnow = static_cast(ulnow); + + return 0; } private: @@ -168,9 +171,9 @@ private: return static_cast(userdata)->on_data(ptr, size, nmemb); } - static void on_progress_wrap(void* userdata, - double dltotal, double dlnow, - double ultotal, double ulnow) + static int on_progress_wrap(void* userdata, + double dltotal, double dlnow, + double ultotal, double ulnow) { return static_cast(userdata)->on_progress(dltotal, dlnow, ultotal, ulnow); } @@ -245,6 +248,7 @@ Downloader::download(const std::string& url) void Downloader::download(const std::string& url, const std::string& filename) { + log_info << "download: " << url << " to " << filename << std::endl; std::unique_ptr fout(PHYSFS_openWrite(filename.c_str()), PHYSFS_close); download(url, my_curl_physfs_write, fout.get()); @@ -360,6 +364,7 @@ Downloader::update() TransferStatusPtr Downloader::request_download(const std::string& url, const std::string& outfile) { + log_info << "request_download: " << url << std::endl; std::unique_ptr transfer(new Transfer(*this, m_next_transfer_id++, url, outfile)); curl_multi_add_handle(m_multi_handle, transfer->get_curl_handle()); m_transfers.push_back(std::move(transfer));