summaryrefslogtreecommitdiff
path: root/net-misc/curl/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-02-22 14:28:15 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-02-22 14:28:15 +0000
commitaae71b4d8e684ca22d28ef0f1da0989e7bf6468d (patch)
tree0e9cf35d85726e6aa9fbd58b12035f92ffec0130 /net-misc/curl/files
parent20ed81714fa97f5845db16a3c142b3b44d820bc4 (diff)
gentoo auto-resync : 22:02:2023 - 14:28:15
Diffstat (limited to 'net-misc/curl/files')
-rw-r--r--net-misc/curl/files/curl-7.88.0-http2.patch93
-rw-r--r--net-misc/curl/files/curl-7.88.0-tests.patch120
-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
5 files changed, 113 insertions, 213 deletions
diff --git a/net-misc/curl/files/curl-7.88.0-http2.patch b/net-misc/curl/files/curl-7.88.0-http2.patch
deleted file mode 100644
index 49d90e901823..000000000000
--- a/net-misc/curl/files/curl-7.88.0-http2.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-https://github.com/curl/curl/commit/87ed650d04dc1a6f7944a5d952f7d5b0934a19ac
-Author: Harry Sintonen <sintonen@iki.fi>
-Date: Thu Feb 16 06:26:26 2023 +0200
-
- http2: set drain on stream end
-
- Ensure that on_frame_recv() stream end will trigger a read if there is
- pending data. Without this it could happen that the pending data is
- never consumed.
-
- This combined with https://github.com/curl/curl/pull/10529 should fix
- https://github.com/curl/curl/issues/10525
-
- Ref: https://github.com/curl/curl/issues/10525
- Closes #10530
-
---- a/lib/http2.c
-+++ b/lib/http2.c
-@@ -868,6 +868,14 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
- return NGHTTP2_ERR_CALLBACK_FAILURE;
- }
- }
-+ if(frame->hd.flags & NGHTTP2_FLAG_END_STREAM) {
-+ /* Stream has ended. If there is pending data, ensure that read
-+ will occur to consume it. */
-+ if(!data->state.drain && stream->memlen) {
-+ drain_this(cf, data_s);
-+ Curl_expire(data, 0, EXPIRE_RUN_NOW);
-+ }
-+ }
- break;
- case NGHTTP2_HEADERS:
- DEBUGF(LOG_CF(data_s, cf, "[h2sid=%u] recv frame HEADERS", stream_id));
-
-https://github.com/curl/curl/commit/3103de2053ca8cacf9cdbe78764ba6814481709f
-Author: Stefan Eissing <stefan@eissing.org>
-Date: Wed Feb 15 22:11:13 2023 +0100
-
- http2: buffer/pausedata and output flush fix.
-
- * do not process pending input data when copying pausedata to the
- caller
- * return CURLE_AGAIN if the output buffer could not be completely
- written out.
-
- Ref: #10525
- Closes #10529
-
---- a/lib/http2.c
-+++ b/lib/http2.c
-@@ -467,6 +467,7 @@ static CURLcode flush_output(struct Curl_cfilter *cf,
- }
- if((size_t)written < buflen) {
- Curl_dyn_tail(&ctx->outbuf, buflen - (size_t)written);
-+ return CURLE_AGAIN;
- }
- else {
- Curl_dyn_reset(&ctx->outbuf);
-@@ -1790,6 +1791,7 @@ static ssize_t cf_h2_recv(struct Curl_cfilter *cf, struct Curl_easy *data,
-
- stream->pausedata += nread;
- stream->pauselen -= nread;
-+ drain_this(cf, data);
-
- if(stream->pauselen == 0) {
- DEBUGF(LOG_CF(data, cf, "[h2sid=%u] Unpaused", stream->stream_id));
-@@ -1798,18 +1800,6 @@ static ssize_t cf_h2_recv(struct Curl_cfilter *cf, struct Curl_easy *data,
-
- stream->pausedata = NULL;
- stream->pauselen = 0;
--
-- /* When NGHTTP2_ERR_PAUSE is returned from
-- data_source_read_callback, we might not process DATA frame
-- fully. Calling nghttp2_session_mem_recv() again will
-- continue to process DATA frame, but if there is no incoming
-- frames, then we have to call it again with 0-length data.
-- Without this, on_stream_close callback will not be called,
-- and stream could be hanged. */
-- if(h2_process_pending_input(cf, data, err) != 0) {
-- nread = -1;
-- goto out;
-- }
- }
- DEBUGF(LOG_CF(data, cf, "[h2sid=%u] recv: returns unpaused %zd bytes",
- stream->stream_id, nread));
-@@ -1933,6 +1923,7 @@ static ssize_t cf_h2_recv(struct Curl_cfilter *cf, struct Curl_easy *data,
- drained_transfer(cf, data);
- }
-
-+ *err = CURLE_OK;
- nread = retlen;
- DEBUGF(LOG_CF(data, cf, "[h2sid=%u] cf_h2_recv -> %zd",
- stream->stream_id, nread));
diff --git a/net-misc/curl/files/curl-7.88.0-tests.patch b/net-misc/curl/files/curl-7.88.0-tests.patch
deleted file mode 100644
index 81131dc6bc64..000000000000
--- a/net-misc/curl/files/curl-7.88.0-tests.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-https://github.com/curl/curl/commit/f1d09231adfc695d15995b9ef2c8c6e568c28091
-Author: Stefan Eissing <stefan@eissing.org>
-Date: Tue Feb 14 14:29:13 2023 +0100
-
- tests: make the telnet server shut down a socket gracefully
-
- - test 1452 failed occasionally with ECONNRESET errnos in curl when the
- server closed the connection in an unclean state.
-
- Closes #10509
-
---- a/tests/negtelnetserver.py
-+++ b/tests/negtelnetserver.py
-@@ -29,7 +29,9 @@ from __future__ import (absolute_import, division, print_function,
- import argparse
- import logging
- import os
-+import socket
- import sys
-+import time
-
- from util import ClosingFileHandler
-
-@@ -90,7 +92,7 @@ class NegotiatingTelnetHandler(socketserver.BaseRequestHandler):
- neg.send_wont("NAWS")
-
- # Get the data passed through the negotiator
-- data = neg.recv(1024)
-+ data = neg.recv(4*1024)
- log.debug("Incoming data: %r", data)
-
- if VERIFIED_REQ.encode('utf-8') in data:
-@@ -109,6 +111,12 @@ class NegotiatingTelnetHandler(socketserver.BaseRequestHandler):
- log.debug("Sending %r", response_data)
- self.request.sendall(response_data)
-
-+ # put some effort into making a clean socket shutdown
-+ # that does not give the client ECONNRESET
-+ self.request.settimeout(0.1)
-+ self.request.recv(4*1024)
-+ self.request.shutdown(socket.SHUT_RDWR)
-+
- except IOError:
- log.exception("IOError hit during request")
-
-
-https://github.com/curl/curl/commit/2fdc1d816ebf3c77f43068103bec1b3a3767881a
-Author: Daniel Stenberg <daniel@haxx.se>
-Date: Wed Feb 15 15:04:07 2023 +0100
-
- tests: make sure gnuserv-tls has SRP support before using it
-
- Reported-by: fundawang on github
- Fixes #10522
- Closes #10524
-
---- a/tests/runtests.pl
-+++ b/tests/runtests.pl
-@@ -5382,7 +5382,7 @@ sub startservers {
- elsif($what eq "httptls") {
- if(!$httptlssrv) {
- # for now, we can't run http TLS-EXT tests without gnutls-serv
-- return "no gnutls-serv";
-+ return "no gnutls-serv (with SRP support)";
- }
- if($torture && $run{'httptls'} &&
- !responsive_httptls_server($verbose, "IPv4")) {
---- a/tests/sshhelp.pm
-+++ b/tests/sshhelp.pm
-@@ -408,7 +408,16 @@ sub find_sshkeygen {
- # Find httptlssrv (gnutls-serv) and return canonical filename
- #
- sub find_httptlssrv {
-- return find_exe_file_hpath($httptlssrvexe);
-+ my $p = find_exe_file_hpath($httptlssrvexe);
-+ my @o = `$p -l`;
-+ my $found;
-+ for(@o) {
-+ if(/Key exchange: SRP/) {
-+ $found = 1;
-+ last;
-+ }
-+ }
-+ return $p if($found);
- }
-
-
-
-https://github.com/curl/curl/commit/79d0b3c0c0bb00829f10ec139dbf3823c249ae72
-Author: Daniel Stenberg <daniel@haxx.se>
-Date: Wed Feb 15 13:03:21 2023 +0100
-
- runtests: fix "uninitialized value $port"
-
- by using a more appropriate variable
-
- Reported-by: fundawang on github
- Fixes #10518
- Closes #10520
-
---- a/tests/runtests.pl
-+++ b/tests/runtests.pl
-@@ -1740,7 +1740,7 @@ sub runhttpserver {
- }
-
- # where is it?
-- my $port;
-+ my $port = 0;
- if(!$port_or_path) {
- $port = $port_or_path = pidfromfile($portfile);
- }
-@@ -1758,7 +1758,7 @@ sub runhttpserver {
- $pid2 = $pid3;
-
- if($verbose) {
-- logmsg "RUN: $srvrname server is on PID $httppid port $port\n";
-+ logmsg "RUN: $srvrname server is on PID $httppid port $port_or_path\n";
- }
-
- return ($httppid, $pid2, $port);
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();