Optimize and fix autodownload feature
The commit: 1. fixes value of download speed in KB; 2. introduces unique names of progress_callback() functions; 3. removes one unnecessary write_callback() function; 4. removes duplicated code/info in loadmodel().
This commit is contained in:
@@ -996,16 +996,16 @@ void sortpckservers()
|
||||
}
|
||||
COMMAND(sortpckservers, "");
|
||||
|
||||
static size_t write_callback(void *ptr, size_t size, size_t nmemb, FILE *stream)
|
||||
size_t write_callback(void *ptr, size_t size, size_t nmemb, FILE *stream)
|
||||
{
|
||||
return fwrite(ptr, size, nmemb, stream);
|
||||
}
|
||||
|
||||
static int progress_callback(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow)
|
||||
int progress_callback_dlpackage(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow)
|
||||
{
|
||||
package *pck = (package *)clientp;
|
||||
loadingscreen(_("downloading package %d out of %d...\n%s %.0f/%.0f KB (%.1f%%)\n(ESC to cancel)"), pck->number + 1, pck->number + pendingpackages.numelems,
|
||||
pck->name, dlnow/double(1000.0), dltotal/double(1000.0), dltotal == 0 ? 0 : (dlnow/dltotal * double(100.0)));
|
||||
pck->name, dlnow/double(1024.0), dltotal/double(1024.0), dltotal == 0 ? 0 : (dlnow/dltotal * double(100.0)));
|
||||
if(interceptkey(SDLK_ESCAPE))
|
||||
{
|
||||
canceldownloads = true;
|
||||
@@ -1078,7 +1078,7 @@ double dlpackage(package *pck)
|
||||
curl_easy_setopt(pck->curl, CURLOPT_WRITEFUNCTION, write_callback);
|
||||
curl_easy_setopt(pck->curl, CURLOPT_WRITEDATA, outfile);
|
||||
curl_easy_setopt(pck->curl, CURLOPT_NOPROGRESS, 0);
|
||||
curl_easy_setopt(pck->curl, CURLOPT_PROGRESSFUNCTION, progress_callback);
|
||||
curl_easy_setopt(pck->curl, CURLOPT_PROGRESSFUNCTION, progress_callback_dlpackage);
|
||||
curl_easy_setopt(pck->curl, CURLOPT_PROGRESSDATA, pck);
|
||||
curl_easy_setopt(pck->curl, CURLOPT_CONNECTTIMEOUT, 10); // generous timeout for Bukz ;)
|
||||
result = curl_easy_perform(pck->curl);
|
||||
|
||||
Reference in New Issue
Block a user