summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Jolly <Matt.Jolly@footclan.ninja>2023-02-22 19:47:01 +1100
committerSam James <sam@gentoo.org>2023-02-22 09:59:54 +0000
commitcbe12326fbfac876349ee179531ba24652de9025 (patch)
tree74f2b8637e6120bde8d6633ad204c2abddbb366b /net-misc/curl/files
parentdev-util/cargo-c: add 0.9.16 (diff)
downloadgentoo-cbe12326fbfac876349ee179531ba24652de9025.tar.gz
gentoo-cbe12326fbfac876349ee179531ba24652de9025.tar.bz2
gentoo-cbe12326fbfac876349ee179531ba24652de9025.zip
net-misc/curl: add 7.88.1-r1
Includes fixes for a segfault during "bad" header dumps, silent parallel downloads, and parallel download fixes for >199 connections. Signed-off-by: Matt Jolly <Matt.Jolly@footclan.ninja> Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'net-misc/curl/files')
-rw-r--r--net-misc/curl/files/curl-7.88.1-header-dump-segfault.patch29
-rw-r--r--net-misc/curl/files/curl-7.88.1-pipewait.patch64
-rw-r--r--net-misc/curl/files/curl-7.88.1-silent-parallel.patch20
3 files changed, 113 insertions, 0 deletions
diff --git a/net-misc/curl/files/curl-7.88.1-header-dump-segfault.patch b/net-misc/curl/files/curl-7.88.1-header-dump-segfault.patch
new file mode 100644
index 000000000000..48ebb7a5e45f
--- /dev/null
+++ b/net-misc/curl/files/curl-7.88.1-header-dump-segfault.patch
@@ -0,0 +1,29 @@
+https://github.com/curl/curl/commit/1c9cfb7af368feefb522caf81b052ee742a76da8
+From: Daniel Stenberg <daniel@haxx.se>
+Date: Mon, 20 Feb 2023 18:35:13 +0100
+Subject: [PATCH] tool_operate: avoid fclose(NULL) on bad header dump file
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes #10570
+Reported-by: Jérémy Rabasco
+Closes #10571
+--- a/src/tool_operate.c
++++ b/src/tool_operate.c
+@@ -984,12 +984,13 @@ static CURLcode single_transfer(struct GlobalConfig *global,
+ */
+ if(!per->prev || per->prev->config != config) {
+ newfile = fopen(config->headerfile, "wb+");
+- fclose(newfile);
++ if(newfile)
++ fclose(newfile);
+ }
+ newfile = fopen(config->headerfile, "ab+");
+
+ if(!newfile) {
+- warnf(global, "Failed to open %s\n", config->headerfile);
++ errorf(global, "Failed to open %s\n", config->headerfile);
+ result = CURLE_WRITE_ERROR;
+ break;
+ }
diff --git a/net-misc/curl/files/curl-7.88.1-pipewait.patch b/net-misc/curl/files/curl-7.88.1-pipewait.patch
new file mode 100644
index 000000000000..6c626a86c8e0
--- /dev/null
+++ b/net-misc/curl/files/curl-7.88.1-pipewait.patch
@@ -0,0 +1,64 @@
+https://github.com/curl/curl/commit/821f6e2a89de8aec1c7da3c0f381b92b2b801efc
+From: Stefan Eissing <stefan@eissing.org>
+Date: Thu, 9 Feb 2023 16:07:34 +0100
+Subject: [PATCH] CURLOPT_PIPEWAIT: allow waited reuse also for subsequent
+ connections
+
+note: Dropped test portion of patch; not shipped in source tarball!
+
+As tested in test_02_07, when firing off 200 urls with --parallel, 199
+wait for the first connection to be established. if that is multiuse,
+urls are added up to its capacity.
+
+The first url over capacity opens another connection. But subsequent
+urls found the same situation and open a connection too. They should
+have waited for the second connection to actually connect and make its
+capacity known.
+
+This change fixes that by
+
+- setting `connkeep()` early in the HTTP setup handler. as otherwise
+ a new connection is marked as closeit by default and not considered
+ for multiuse at all
+- checking the "connected" status for a candidate always and continuing
+ to PIPEWAIT if no alternative is found.
+
+pytest:
+- removed "skip" from test_02_07
+- added test_02_07b to check that http/1.1 continues to work as before
+
+Closes #10456
+--- a/lib/http.c
++++ b/lib/http.c
+@@ -233,6 +233,7 @@ static CURLcode http_setup_conn(struct Curl_easy *data,
+
+ Curl_mime_initpart(&http->form);
+ data->req.p.http = http;
++ connkeep(conn, "HTTP default");
+
+ if((data->state.httpwant == CURL_HTTP_VERSION_3)
+ || (data->state.httpwant == CURL_HTTP_VERSION_3ONLY)) {
+--- a/lib/url.c
++++ b/lib/url.c
+@@ -1170,14 +1170,14 @@ ConnectionExists(struct Curl_easy *data,
+ continue;
+ }
+ }
++ }
+
+- if(!Curl_conn_is_connected(check, FIRSTSOCKET)) {
+- foundPendingCandidate = TRUE;
+- /* Don't pick a connection that hasn't connected yet */
+- infof(data, "Connection #%ld isn't open enough, can't reuse",
+- check->connection_id);
+- continue;
+- }
++ if(!Curl_conn_is_connected(check, FIRSTSOCKET)) {
++ foundPendingCandidate = TRUE;
++ /* Don't pick a connection that hasn't connected yet */
++ infof(data, "Connection #%ld isn't open enough, can't reuse",
++ check->connection_id);
++ continue;
+ }
+
+ #ifdef USE_UNIX_SOCKETS
diff --git a/net-misc/curl/files/curl-7.88.1-silent-parallel.patch b/net-misc/curl/files/curl-7.88.1-silent-parallel.patch
new file mode 100644
index 000000000000..1162067f73b3
--- /dev/null
+++ b/net-misc/curl/files/curl-7.88.1-silent-parallel.patch
@@ -0,0 +1,20 @@
+https://github.com/curl/curl/commit/475207c1c834ecf203dc4f3bc1917ae87628b6d0
+From: Daniel Stenberg <daniel@haxx.se>
+Date: Tue, 21 Feb 2023 11:38:03 +0100
+Subject: [PATCH] tool_progress: shut off progress meter for --silent in
+ parallel
+
+Reported-by: finkjsc on github
+Fixes #10573
+Closes #10579
+--- a/src/tool_progress.c
++++ b/src/tool_progress.c
+@@ -173,7 +173,7 @@ bool progress_meter(struct GlobalConfig *global,
+ struct timeval now;
+ long diff;
+
+- if(global->noprogress)
++ if(global->noprogress || global->silent)
+ return FALSE;
+
+ now = tvnow();