git: caa55df944c6 - main - ftp/curl: Update to 8.10.1
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 25 Sep 2024 18:25:19 UTC
The branch main has been updated by sunpoet:
URL: https://cgit.FreeBSD.org/ports/commit/?id=caa55df944c68549fce09d45e7bf62fb0de839aa
commit caa55df944c68549fce09d45e7bf62fb0de839aa
Author: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2024-09-25 17:48:24 +0000
Commit: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2024-09-25 18:21:54 +0000
ftp/curl: Update to 8.10.1
Changes: https://curl.se/changes.html
---
ftp/curl/Makefile | 3 +-
ftp/curl/distinfo | 8 +-
...git-01-70d3a9b6aa69ffdd9435e168463cfabd21e17cd1 | 124 ---------------------
...git-02-bef0acaf212a71c782e0b8e8e6c772cc46040356 | 48 --------
4 files changed, 4 insertions(+), 179 deletions(-)
diff --git a/ftp/curl/Makefile b/ftp/curl/Makefile
index b561bbd8245a..7e0faa24ae1c 100644
--- a/ftp/curl/Makefile
+++ b/ftp/curl/Makefile
@@ -1,6 +1,5 @@
PORTNAME= curl
-PORTVERSION= 8.10.0
-PORTREVISION= 1
+PORTVERSION= 8.10.1
CATEGORIES= ftp net www
MASTER_SITES= https://curl.se/download/ \
https://github.com/curl/curl/releases/download/curl-${PORTVERSION:S|.|_|g}/
diff --git a/ftp/curl/distinfo b/ftp/curl/distinfo
index 1c8cdb6886be..041c821649c6 100644
--- a/ftp/curl/distinfo
+++ b/ftp/curl/distinfo
@@ -1,5 +1,3 @@
-TIMESTAMP = 1726080937
-SHA256 (curl-8.10.0.tar.xz) = e6b142f0e85e954759d37e26a3627e2278137595be80e3a860c4353e4335e5a0
-SIZE (curl-8.10.0.tar.xz) = 2729448
-SHA256 (3eec5afbd0b6377eca893c392569b2faf094d970.patch) = ba87265c9f01fd608c1287666f4edead6b1a18bde328bff486aa81a77befa2f0
-SIZE (3eec5afbd0b6377eca893c392569b2faf094d970.patch) = 912
+TIMESTAMP = 1727260381
+SHA256 (curl-8.10.1.tar.xz) = 73a4b0e99596a09fa5924a4fb7e4b995a85fda0d18a2c02ab9cf134bebce04ee
+SIZE (curl-8.10.1.tar.xz) = 2726748
diff --git a/ftp/curl/files/patch-git-01-70d3a9b6aa69ffdd9435e168463cfabd21e17cd1 b/ftp/curl/files/patch-git-01-70d3a9b6aa69ffdd9435e168463cfabd21e17cd1
deleted file mode 100644
index aab6f77b6221..000000000000
--- a/ftp/curl/files/patch-git-01-70d3a9b6aa69ffdd9435e168463cfabd21e17cd1
+++ /dev/null
@@ -1,124 +0,0 @@
-From 70d3a9b6aa69ffdd9435e168463cfabd21e17cd1 Mon Sep 17 00:00:00 2001
-From: Stefan Eissing <stefan@eissing.org>
-Date: Thu, 12 Sep 2024 10:03:33 +0200
-Subject: [PATCH] http2: when uploading data from stdin, fix eos forwarding
-
-When uploading data from stdin ('-T -'), and the EOS was only detected
-on a 0-length read, the EOS was not forwarded to the filters. This led
-HTTP/2 to hang on not forwarding this to the server.
-
-Added test_07_14 to reproduce and verify.
-
-Fixes #14870
-Reported-by: nekopsykose on github
-Closes #14877
----
- lib/http2.c | 9 ++++-----
- lib/request.c | 35 +++++++++++++++++++++++-----------
- lib/request.h | 1 +
- lib/transfer.c | 4 ++--
- tests/http/test_07_upload.py | 37 ++++++++++++++++++++++++++++++++++++
- 5 files changed, 68 insertions(+), 18 deletions(-)
-
-diff --git a/lib/http2.c b/lib/http2.c
-index bc50a2f7a7fe43..df3e6f0df38fbf 100644
---- lib/http2.c
-+++ lib/http2.c
-@@ -1679,12 +1679,11 @@ static ssize_t req_body_read_callback(nghttp2_session *session,
- CURL_TRC_CF(data_s, cf, "[%d] req_body_read(len=%zu) eos=%d -> %zd, %d",
- stream_id, length, stream->body_eos, nread, result);
-
-- if(nread == 0)
-- return NGHTTP2_ERR_DEFERRED;
-- if(stream->body_eos && Curl_bufq_is_empty(&stream->sendbuf))
-+ if(stream->body_eos && Curl_bufq_is_empty(&stream->sendbuf)) {
- *data_flags = NGHTTP2_DATA_FLAG_EOF;
--
-- return nread;
-+ return nread;
-+ }
-+ return (nread == 0)? NGHTTP2_ERR_DEFERRED : nread;
- }
-
- #if !defined(CURL_DISABLE_VERBOSE_STRINGS)
-diff --git a/lib/request.c b/lib/request.c
-index fb75e5577cdbb2..6b2784c3ff08e6 100644
---- lib/request.c
-+++ lib/request.c
-@@ -214,15 +214,19 @@ static CURLcode xfer_send(struct Curl_easy *data,
- eos = TRUE;
- }
- result = Curl_xfer_send(data, buf, blen, eos, pnwritten);
-- if(!result && *pnwritten) {
-- if(hds_len)
-- Curl_debug(data, CURLINFO_HEADER_OUT, (char *)buf,
-- CURLMIN(hds_len, *pnwritten));
-- if(*pnwritten > hds_len) {
-- size_t body_len = *pnwritten - hds_len;
-- Curl_debug(data, CURLINFO_DATA_OUT, (char *)buf + hds_len, body_len);
-- data->req.writebytecount += body_len;
-- Curl_pgrsSetUploadCounter(data, data->req.writebytecount);
-+ if(!result) {
-+ if(eos && (blen == *pnwritten))
-+ data->req.eos_sent = TRUE;
-+ if(*pnwritten) {
-+ if(hds_len)
-+ Curl_debug(data, CURLINFO_HEADER_OUT, (char *)buf,
-+ CURLMIN(hds_len, *pnwritten));
-+ if(*pnwritten > hds_len) {
-+ size_t body_len = *pnwritten - hds_len;
-+ Curl_debug(data, CURLINFO_DATA_OUT, (char *)buf + hds_len, body_len);
-+ data->req.writebytecount += body_len;
-+ Curl_pgrsSetUploadCounter(data, data->req.writebytecount);
-+ }
- }
- }
- return result;
-@@ -304,8 +308,17 @@ static CURLcode req_flush(struct Curl_easy *data)
- return Curl_xfer_flush(data);
- }
-
-- if(!data->req.upload_done && data->req.eos_read &&
-- Curl_bufq_is_empty(&data->req.sendbuf)) {
-+ if(data->req.eos_read && !data->req.eos_sent) {
-+ char tmp;
-+ size_t nwritten;
-+ result = xfer_send(data, &tmp, 0, 0, &nwritten);
-+ if(result)
-+ return result;
-+ DEBUGASSERT(data->req.eos_sent);
-+ }
-+
-+ if(!data->req.upload_done && data->req.eos_read && data->req.eos_sent) {
-+ DEBUGASSERT(Curl_bufq_is_empty(&data->req.sendbuf));
- if(data->req.shutdown) {
- bool done;
- result = Curl_xfer_send_shutdown(data, &done);
-diff --git a/lib/request.h b/lib/request.h
-index fb3f9f116815cd..c53c3eb5ae7e7f 100644
---- lib/request.h
-+++ lib/request.h
-@@ -130,6 +130,7 @@ struct SingleRequest {
- BIT(download_done); /* set to TRUE when download is complete */
- BIT(eos_written); /* iff EOS has been written to client */
- BIT(eos_read); /* iff EOS has been read from the client */
-+ BIT(eos_sent); /* iff EOS has been sent to the server */
- BIT(rewind_read); /* iff reader needs rewind at next start */
- BIT(upload_done); /* set to TRUE when all request data has been sent */
- BIT(upload_aborted); /* set to TRUE when upload was aborted. Will also
-diff --git a/lib/transfer.c b/lib/transfer.c
-index 0f42b3f2b4ddd6..ab8fd724314e4e 100644
---- lib/transfer.c
-+++ lib/transfer.c
-@@ -1253,8 +1253,8 @@ CURLcode Curl_xfer_send(struct Curl_easy *data,
- else if(!result && *pnwritten)
- data->info.request_size += *pnwritten;
-
-- DEBUGF(infof(data, "Curl_xfer_send(len=%zu) -> %d, %zu",
-- blen, result, *pnwritten));
-+ DEBUGF(infof(data, "Curl_xfer_send(len=%zu, eos=%d) -> %d, %zu",
-+ blen, eos, result, *pnwritten));
- return result;
- }
-
-
diff --git a/ftp/curl/files/patch-git-02-bef0acaf212a71c782e0b8e8e6c772cc46040356 b/ftp/curl/files/patch-git-02-bef0acaf212a71c782e0b8e8e6c772cc46040356
deleted file mode 100644
index ed3a5a0958bd..000000000000
--- a/ftp/curl/files/patch-git-02-bef0acaf212a71c782e0b8e8e6c772cc46040356
+++ /dev/null
@@ -1,48 +0,0 @@
-From bef0acaf212a71c782e0b8e8e6c772cc46040356 Mon Sep 17 00:00:00 2001
-From: Stefan Eissing <stefan@eissing.org>
-Date: Fri, 13 Sep 2024 09:58:16 +0200
-Subject: [PATCH] request: correctly reset the eos_sent flag
-
-Add test cases
-
-Bug: https://marc.info/?l=git&m=172620452502747&w=2
-Reported-by: Patrick Steinhardt
-Closes #14895
----
- lib/request.c | 5 +
- tests/http/clients/.gitignore | 3 +-
- tests/http/clients/Makefile.inc | 3 +-
- .../clients/{h2-download.c => hx-download.c} | 0
- tests/http/clients/hx-upload.c | 568 ++++++++++++++++++
- tests/http/test_02_download.py | 12 +-
- tests/http/test_07_upload.py | 61 ++
- tests/http/test_19_shutdown.py | 2 +-
- 8 files changed, 645 insertions(+), 9 deletions(-)
- rename tests/http/clients/{h2-download.c => hx-download.c} (100%)
- create mode 100644 tests/http/clients/hx-upload.c
-
-diff --git a/lib/request.c b/lib/request.c
-index 6b2784c3ff08e6..1ddbdc9d0f1680 100644
---- lib/request.c
-+++ lib/request.c
-@@ -52,7 +52,11 @@ CURLcode Curl_req_soft_reset(struct SingleRequest *req,
-
- req->done = FALSE;
- req->upload_done = FALSE;
-+ req->upload_aborted = FALSE;
- req->download_done = FALSE;
-+ req->eos_written = FALSE;
-+ req->eos_read = FALSE;
-+ req->eos_sent = FALSE;
- req->ignorebody = FALSE;
- req->shutdown = FALSE;
- req->bytecount = 0;
-@@ -146,6 +150,7 @@ void Curl_req_hard_reset(struct SingleRequest *req, struct Curl_easy *data)
- req->download_done = FALSE;
- req->eos_written = FALSE;
- req->eos_read = FALSE;
-+ req->eos_sent = FALSE;
- req->upload_done = FALSE;
- req->upload_aborted = FALSE;
- req->ignorebody = FALSE;
-