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; -