summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/libalpm/dload.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
index 25bb659b..320f84e8 100644
--- a/lib/libalpm/dload.c
+++ b/lib/libalpm/dload.c
@@ -47,6 +47,8 @@
#include "util.h"
#include "handle.h"
+static int prevprogress; /* last download amount */
+
static char *get_filename(const char *url) {
char *filename = strrchr(url, '/');
if(filename != NULL) {
@@ -92,7 +94,7 @@ static int curl_progress(void *filename, double dltotal, double dlnow,
(void)ultotal;
(void)ulnow;
- if(dltotal == 0) {
+ if(dltotal == 0 || prevprogress == dltotal) {
return(0);
}
@@ -102,6 +104,8 @@ static int curl_progress(void *filename, double dltotal, double dlnow,
handle->dlcb((const char*)filename, (long)dlnow, (long)dltotal);
+ prevprogress = dlnow;
+
return(0);
}