mirror of
https://github.com/moparisthebest/pacman
synced 2024-12-22 07:48:50 -05:00
Replace CURLOPT_PROGRESSFUNCTION with CURLOPT_XFERINFOFUNCTION
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@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
1e2b398406
commit
e28c5803bb
@ -232,10 +232,10 @@ AM_CONDITIONAL(HAVE_LIBSSL, [test "$have_openssl" = "yes"])
|
|||||||
# Check for libcurl
|
# Check for libcurl
|
||||||
have_libcurl=no
|
have_libcurl=no
|
||||||
if test "x$with_libcurl" != "xno"; then
|
if test "x$with_libcurl" != "xno"; then
|
||||||
PKG_CHECK_MODULES(LIBCURL, [libcurl >= 7.19.4],
|
PKG_CHECK_MODULES(LIBCURL, [libcurl >= 7.32.0],
|
||||||
[AC_DEFINE(HAVE_LIBCURL, 1, [Define if libcurl is available]) have_libcurl=yes], have_libcurl=no)
|
[AC_DEFINE(HAVE_LIBCURL, 1, [Define if libcurl is available]) have_libcurl=yes], have_libcurl=no)
|
||||||
if test "x$have_libcurl" = xno -a "x$with_libcurl" = xyes; then
|
if test "x$have_libcurl" = xno -a "x$with_libcurl" = xyes; then
|
||||||
AC_MSG_ERROR([*** libcurl >= 7.19.4 is required for internal downloader support])
|
AC_MSG_ERROR([*** libcurl >= 7.32.0 is required for internal downloader support])
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
AM_CONDITIONAL(HAVE_LIBCURL, [test "$have_libcurl" = "yes"])
|
AM_CONDITIONAL(HAVE_LIBCURL, [test "$have_libcurl" = "yes"])
|
||||||
|
@ -90,8 +90,8 @@ static void inthandler(int UNUSED signum)
|
|||||||
dload_interrupted = ABORT_SIGINT;
|
dload_interrupted = ABORT_SIGINT;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dload_progress_cb(void *file, double dltotal, double dlnow,
|
static int dload_progress_cb(void *file, curl_off_t dltotal, curl_off_t dlnow,
|
||||||
double UNUSED ultotal, double UNUSED ulnow)
|
curl_off_t UNUSED ultotal, curl_off_t UNUSED ulnow)
|
||||||
{
|
{
|
||||||
struct dload_payload *payload = (struct dload_payload *)file;
|
struct dload_payload *payload = (struct dload_payload *)file;
|
||||||
off_t current_size, total_size;
|
off_t current_size, total_size;
|
||||||
@ -106,7 +106,7 @@ static int dload_progress_cb(void *file, double dltotal, double dlnow,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
current_size = payload->initial_size + (off_t)dlnow;
|
current_size = payload->initial_size + dlnow;
|
||||||
|
|
||||||
/* is our filesize still under any set limit? */
|
/* is our filesize still under any set limit? */
|
||||||
if(payload->max_size && current_size > payload->max_size) {
|
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;
|
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;
|
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: download complete
|
||||||
* x {x>0, x<y}, y {y > 0}: download progress, expected total is known */
|
* x {x>0, x<y}, y {y > 0}: download progress, expected total is known */
|
||||||
if(current_size == total_size) {
|
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) {
|
} else if(!payload->prevprogress) {
|
||||||
payload->handle->dlcb(payload->remote_name, 0, -1);
|
payload->handle->dlcb(payload->remote_name, 0, -1);
|
||||||
} else if(payload->prevprogress == current_size) {
|
} else if(payload->prevprogress == current_size) {
|
||||||
@ -142,7 +142,7 @@ static int dload_progress_cb(void *file, double dltotal, double dlnow,
|
|||||||
} else {
|
} else {
|
||||||
/* do NOT include initial_size since it wasn't part of the package's
|
/* do NOT include initial_size since it wasn't part of the package's
|
||||||
* download_size (nor included in the total download size callback) */
|
* 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;
|
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_FILETIME, 1L);
|
||||||
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0L);
|
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0L);
|
||||||
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
|
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
|
||||||
curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, dload_progress_cb);
|
curl_easy_setopt(curl, CURLOPT_XFERINFOFUNCTION, dload_progress_cb);
|
||||||
curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, (void *)payload);
|
curl_easy_setopt(curl, CURLOPT_XFERINFODATA, (void *)payload);
|
||||||
curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 1L);
|
curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 1L);
|
||||||
curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);
|
curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);
|
||||||
curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, dload_parseheader_cb);
|
curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, dload_parseheader_cb);
|
||||||
|
Loading…
Reference in New Issue
Block a user