[pacman-dev] [PATCH] Replace CURLOPT_PROGRESSFUNCTION with CURLOPT_XFERINFOFUNCTION

ivy.foster at gmail.com ivy.foster at gmail.com
Tue Aug 30 19:54:31 UTC 2016


From: Ivy Foster <ivy.foster at gmail.com>

Curl 7.32.0 added CURLOPT_XFERINFOFUNCTION, which deprecates
CURLOPT_PROGRESSFUNCTION and means less casting doubles to size_ts for
alpm. This change has no user-facing nor frontend-facing effects.

Signed-off-by: Ivy Foster <ivy.foster at gmail.com>
---
 lib/libalpm/dload.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
index f4e6a27..dc57c92 100644
--- a/lib/libalpm/dload.c
+++ b/lib/libalpm/dload.c
@@ -90,8 +90,8 @@ static void inthandler(int UNUSED signum)
 	dload_interrupted = ABORT_SIGINT;
 }
 
-static int dload_progress_cb(void *file, double dltotal, double dlnow,
-		double UNUSED ultotal, double UNUSED ulnow)
+static int dload_progress_cb(void *file, curl_off_t dltotal, curl_off_t dlnow,
+		curl_off_t UNUSED ultotal, curl_off_t UNUSED ulnow)
 {
 	struct dload_payload *payload = (struct dload_payload *)file;
 	off_t current_size, total_size;
@@ -106,7 +106,7 @@ static int dload_progress_cb(void *file, double dltotal, double dlnow,
 		return 1;
 	}
 
-	current_size = payload->initial_size + (off_t)dlnow;
+	current_size = payload->initial_size + dlnow;
 
 	/* is our filesize still under any set limit? */
 	if(payload->max_size && current_size > payload->max_size) {
@@ -119,9 +119,9 @@ static int dload_progress_cb(void *file, double dltotal, double dlnow,
 		return 0;
 	}
 
-	total_size = payload->initial_size + (off_t)dltotal;
+	total_size = payload->initial_size + dltotal;
 
-	if(DOUBLE_EQ(dltotal, 0.0) || payload->prevprogress == total_size) {
+	if(dltotal == 0 || payload->prevprogress == total_size) {
 		return 0;
 	}
 
@@ -134,7 +134,7 @@ static int dload_progress_cb(void *file, double dltotal, double dlnow,
 	 * x {x>0}, x: download complete
 	 * x {x>0, x<y}, y {y > 0}: download progress, expected total is known */
 	if(current_size == total_size) {
-		payload->handle->dlcb(payload->remote_name, (off_t)dlnow, (off_t)dltotal);
+		payload->handle->dlcb(payload->remote_name, dlnow, dltotal);
 	} else if(!payload->prevprogress) {
 		payload->handle->dlcb(payload->remote_name, 0, -1);
 	} else if(payload->prevprogress == current_size) {
@@ -142,7 +142,7 @@ static int dload_progress_cb(void *file, double dltotal, double dlnow,
 	} else {
 	/* do NOT include initial_size since it wasn't part of the package's
 	 * download_size (nor included in the total download size callback) */
-		payload->handle->dlcb(payload->remote_name, (off_t)dlnow, (off_t)dltotal);
+		payload->handle->dlcb(payload->remote_name, dlnow, dltotal);
 	}
 
 	payload->prevprogress = current_size;
@@ -303,8 +303,8 @@ static void curl_set_handle_opts(struct dload_payload *payload,
 	curl_easy_setopt(curl, CURLOPT_FILETIME, 1L);
 	curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0L);
 	curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
-	curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, dload_progress_cb);
-	curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, (void *)payload);
+	curl_easy_setopt(curl, CURLOPT_XFERINFOFUNCTION, dload_progress_cb);
+	curl_easy_setopt(curl, CURLOPT_XFERINFODATA, (void *)payload);
 	curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 1L);
 	curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);
 	curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, dload_parseheader_cb);
-- 
2.9.3


More information about the pacman-dev mailing list