This commit is contained in:
parent
de8970016e
commit
4562bf26dd
@ -0,0 +1,55 @@
|
||||
From d3085b7d1492766f5d7bb5de210c2b11c2e1ead9 Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Klumpp <matthias@tenstral.net>
|
||||
Date: Sun, 18 Feb 2024 06:50:02 +0100
|
||||
Subject: [PATCH] Don't prematurely abort URL validity check during semi-large
|
||||
redirects
|
||||
|
||||
During some redirects we were already downloading enough data to warrant
|
||||
aborting the download, leaving us with 302 as the last status code,
|
||||
failing the reachable-URL test.
|
||||
|
||||
With this change, we will only start to count downloadable bytes once we
|
||||
left the redirects, so we will only count downloaded data at our final
|
||||
destination.
|
||||
|
||||
Resolves: #597
|
||||
---
|
||||
src/as-curl.c | 12 ++++++++++--
|
||||
1 file changed, 10 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/as-curl.c b/src/as-curl.c
|
||||
index 30e492a0..b860b36a 100644
|
||||
--- a/src/as-curl.c
|
||||
+++ b/src/as-curl.c
|
||||
@@ -110,6 +110,7 @@ as_curl_download_write_bytearray_cb (char *ptr, size_t size, size_t nmemb, void
|
||||
GByteArray *buf = (GByteArray *) udata;
|
||||
gsize realsize = size * nmemb;
|
||||
g_byte_array_append (buf, (const guint8 *) ptr, realsize);
|
||||
+
|
||||
return realsize;
|
||||
}
|
||||
|
||||
@@ -368,11 +369,18 @@ as_curl_progress_check_url_cb (void *clientp,
|
||||
curl_off_t ulnow)
|
||||
{
|
||||
AsCurlPrivate *priv = GET_PRIVATE ((AsCurl *) clientp);
|
||||
+ glong status_code;
|
||||
+
|
||||
+ /* always continue if we are still being redirected */
|
||||
+ curl_easy_getinfo (priv->curl, CURLINFO_RESPONSE_CODE, &status_code);
|
||||
+ if (status_code == 302)
|
||||
+ return 0;
|
||||
+
|
||||
priv->bytes_downloaded = dlnow;
|
||||
|
||||
- /* stop after 2kb have been successfully downloaded - it turns out a lot
|
||||
+ /* stop after 1kb has been successfully downloaded - it turns out a lot
|
||||
* of downloads fail later, so just checking for the first byte is not enough */
|
||||
- if (dlnow >= 2048)
|
||||
+ if (dlnow >= 1024)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
2.43.0
|
||||
|
Loading…
Reference in New Issue
Block a user