summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Reisner <dreisner@archlinux.org>2011-09-29 18:17:16 +0200
committerDan McGee <dan@archlinux.org>2011-09-29 19:58:37 +0200
commitad8d3ceb898716cf2642fb71963c0ef5a490621e (patch)
tree8f92f670b49058e833571a4c2f66d15eedcdb250
parent775b94e64903057a75071491670013975fc3ecb2 (diff)
downloadpacman-ad8d3ceb898716cf2642fb71963c0ef5a490621e.tar.gz
pacman-ad8d3ceb898716cf2642fb71963c0ef5a490621e.tar.xz
move prevprogress onto payload handle
This is a poor place for it, and it will likely move again in the future, but it's better to have it here than as a static variable. Initialization of this variable is now no longer necessary as its zeroed on creation of the payload struct. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--lib/libalpm/dload.c11
-rw-r--r--lib/libalpm/dload.h1
2 files changed, 4 insertions, 8 deletions
diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
index c599b7f5..33824be8 100644
--- a/lib/libalpm/dload.c
+++ b/lib/libalpm/dload.c
@@ -43,8 +43,6 @@
#include "handle.h"
#ifdef HAVE_LIBCURL
-static off_t prevprogress; /* last download amount */
-
static const char *get_filename(const char *url)
{
char *filename = strrchr(url, '/');
@@ -112,19 +110,19 @@ static int curl_progress(void *file, double dltotal, double dlnow,
total_size = payload->initial_size + (off_t)dltotal;
- if(DOUBLE_EQ(dltotal, 0.0) || prevprogress == total_size) {
+ if(DOUBLE_EQ(dltotal, 0.0) || payload->prevprogress == total_size) {
return 0;
}
/* initialize the progress bar here to avoid displaying it when
* a repo is up to date and nothing gets downloaded */
- if(prevprogress == 0) {
+ if(payload->prevprogress == 0) {
payload->handle->dlcb(payload->remote_name, 0, (off_t)dltotal);
}
payload->handle->dlcb(payload->remote_name, current_size, total_size);
- prevprogress = current_size;
+ payload->prevprogress = current_size;
return 0;
}
@@ -376,9 +374,6 @@ static int curl_download_internal(struct dload_payload *payload,
mask_signal(SIGPIPE, SIG_IGN, &orig_sig_pipe);
mask_signal(SIGINT, &inthandler, &orig_sig_int);
- /* Progress 0 - initialize */
- prevprogress = 0;
-
/* perform transfer */
payload->curlerr = curl_easy_perform(curl);
diff --git a/lib/libalpm/dload.h b/lib/libalpm/dload.h
index 9be29bc8..5442c0e2 100644
--- a/lib/libalpm/dload.h
+++ b/lib/libalpm/dload.h
@@ -35,6 +35,7 @@ struct dload_payload {
char *fileurl;
off_t initial_size;
off_t max_size;
+ off_t prevprogress;
int force;
int allow_resume;
int errors_ok;