summaryrefslogtreecommitdiff
path: root/net-misc/curl
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/curl')
-rw-r--r--net-misc/curl/Manifest3
-rw-r--r--net-misc/curl/curl-8.10.0-r1.ebuild (renamed from net-misc/curl/curl-8.10.0.ebuild)1
-rw-r--r--net-misc/curl/files/curl-8.10.0-sendrecv-poll.patch51
3 files changed, 54 insertions, 1 deletions
diff --git a/net-misc/curl/Manifest b/net-misc/curl/Manifest
index 506c8b9e9165..fe1a1a4174b4 100644
--- a/net-misc/curl/Manifest
+++ b/net-misc/curl/Manifest
@@ -1,3 +1,4 @@
+AUX curl-8.10.0-sendrecv-poll.patch 2113 BLAKE2B 8f00179a27b3f544c8cf9c8f1adfc087011eb2c84792f64847052fe34fdf0a39c953a677aaf8a77f27634ec619101562203d0105c415664952b036f791083db9 SHA512 2e00a8004bcc50f184c5768ab30d0daaa0b845c5d5d2368ee8d35971da4832dd6bb7f30733e4ecb9fb3dd6547facfbc8d152fc59a40bf2858a8564130f83b308
AUX curl-8.7.1-chunked-post.patch 2389 BLAKE2B d283816be5dca19ab0058db1937d686b4f9056caf3c46a8dcd731bc69ae91df1b01d10f643ce127eeec7aac0e9282f8b5c5109fe1cea82b30d2cf3270e93ae24 SHA512 3b1a67010704f4863f973e79d6a695e6e13b938fbaa695a05bc92b1a577fa5852c310b38f9c88518275f82c7d088474f5e4c585ac5ff790043e6ca969b0dc1d9
AUX curl-8.7.1-fix-compress-option.patch 6222 BLAKE2B 7ff5c096fa6cc5cc039f47188a85c49364cdfe6cfeae3a9c58b38939eb59896bcf204c682f36e89ace37a0753236593307e1af45bc2d0f099ff685af8e366713 SHA512 1622adf015a016a205d4bf621715ed06fd345cd45f032ad44b6d9324d398c0e2004f04fe734401b12007c3eb145dac84aa3ce90bdaa9b16e09b5908da75f902f
AUX curl-8.7.1-http2-git-clone.patch 14120 BLAKE2B 5bc2c0765ebd400f2e79d0552621c98640c757f189ae0fa029d8fb6d9fa74ac0e4fd93948fed6bc7f93b329e30948a585be1f20dde18423acf162cd36b4fb166 SHA512 278720daae7d4d3288502e0dd2b591ada66a559040eb341b0cf5673094e9d214eb166772279378487da96f43912313e04d3b174fdcb2b2cbfa766f241df62f34
@@ -17,7 +18,7 @@ DIST curl-8.8.0.tar.xz 2748860 BLAKE2B c14903bad4cbd1752a5335afa6bcc78be1a484692
DIST curl-8.8.0.tar.xz.asc 488 BLAKE2B d80c0ff357b344d7ec2b975a92f1eeb7557993b61a69e7adaaeab89c9b5a53ddade5104fe1a0ad260145db9c90fc0aae36dfc22320492db6696f290da9ff675b SHA512 37b501770225dff6b1e7bde1157f556f10ec1c597fcbbb5c8b8c370efb97a3a70f585f2f5c201b96380d68466696474a5f65a07da59b704678d6927567d25359
DIST curl-8.9.1.tar.xz 2782364 BLAKE2B 6e38e20e2b03ab5bfbb8d9797442dfdd9644fc80d7b1f7c1efb1f44e0d730524e82ccf7413b2c6f4555bd61ae42f91ec7c0201e2c0d563811c85164aa234aada SHA512 a0fe234402875db194aad4e4208b7e67e7ffc1562622eea90948d4b9b0122c95c3dde8bbe2f7445a687cb3de7cb09f20e5819d424570442d976aa4c913227fc7
DIST curl-8.9.1.tar.xz.asc 488 BLAKE2B 437268f6e5ba5db73f205fd87f3ded1e5fc200e8bf63a83cdb7e21dfbf2f4a4620e598cd0bf5d8fa1548ade08d45b386599542cd988df46a238b85790409f42e SHA512 18acd58436d70900ab6912b84774da2c451b9dbfc83d6d00f85bbbe7894b67075918e58956fdb753fcc1486e4f10caa31139d7c68b037d7c83dc2e9c2fae9f9b
-EBUILD curl-8.10.0.ebuild 11392 BLAKE2B c62287914b25282543b8000a8a82f2ff82e65cc274ce2aa38837d4b919dd7f5f19d5da5330155731a431398e2bab5058fbfcfad3b0965f77943244719899619f SHA512 f08d3e6f150ec8efb2e155248a895b68c3295034f3362f114fbae4937d0c404fb2007ed0cecbf8a3fab137b2c53cccdee509fae179271b5120f79f248cf26ff6
+EBUILD curl-8.10.0-r1.ebuild 11432 BLAKE2B a82ade1d3f05e25126629574f824cb4140f69802c481f3fc6d5acbfdf7551b018bbb254bcc9671f7dcbb0cc0680ebf84917d50930f6cc33768c278d1ec66f6b0 SHA512 094010c501d5a5ba0a3cf13b3b4e5e9fc0d54bae5763c141064f54c2b05feca89aecf256622045703eca47cea696619ae69b8c4fa16169480cfa785156c093d2
EBUILD curl-8.7.1-r4.ebuild 11261 BLAKE2B 0d1acdce1b58e97d83ee0e67ac0e145894a1bd19e23635649bec06bcd6a45e6487954b497992a7039243ca6860393d2b5115caf2d9edab1a3fbefc46451e2c6f SHA512 687aa43ec10a118f2d53d8532423bf3ffc6eb1ee60f509c3677cc4afcfe1f871b87e18fa5bd045fa86570ae4285432da59adb5f0b548e7da6ed46c9d8a9ad3e5
EBUILD curl-8.8.0-r1.ebuild 11487 BLAKE2B e97f24d529bd6d41556d0584f3bc296754d9ec04b9080bd8ca1dfdce1e12ddf7c50683f2a9c6249b85392f9fd988a3707c04e2ef2bf4a7956390a394cbca6831 SHA512 8c8b3b2ffc3a4c2bb8d83f0da258e3bb664a365c9fc29af387b33df079658c0ec6cd148a93fc36c34c990bf98637125db1826415d3c34887e60f9a6458e2bba4
EBUILD curl-8.9.1-r1.ebuild 11442 BLAKE2B 314ab850c3dd3128e7e9168a019dc5088f4f1d4cb4a78fc19b09c15fe13d2384053c576f54cba0c728f8f2ac5b42d32b3013ae0ff954fb3dbb60e517ff09aa25 SHA512 a446c2d115798704cbf41d06904089bd3429d88ae203b7a77e86a87aa592696f85ae2a2d844575ece18f3f8291af9eaa2652d44baf707144468d3ada94cdb89a
diff --git a/net-misc/curl/curl-8.10.0.ebuild b/net-misc/curl/curl-8.10.0-r1.ebuild
index 8aa5f19b3d9c..335c3c36a022 100644
--- a/net-misc/curl/curl-8.10.0.ebuild
+++ b/net-misc/curl/curl-8.10.0-r1.ebuild
@@ -158,6 +158,7 @@ QA_CONFIG_IMPL_DECL_SKIP=(
PATCHES=(
"${FILESDIR}"/${PN}-prefix-2.patch
"${FILESDIR}"/${PN}-respect-cflags-3.patch
+ "${FILESDIR}"/${P}-sendrecv-poll.patch
)
src_prepare() {
diff --git a/net-misc/curl/files/curl-8.10.0-sendrecv-poll.patch b/net-misc/curl/files/curl-8.10.0-sendrecv-poll.patch
new file mode 100644
index 000000000000..44654377008a
--- /dev/null
+++ b/net-misc/curl/files/curl-8.10.0-sendrecv-poll.patch
@@ -0,0 +1,51 @@
+https://github.com/curl/curl/commit/a33bcc9b53b9d6ea9f879624e8abea0b012b008e
+From: Stefan Eissing <stefan@eissing.org>
+Date: Fri, 13 Sep 2024 18:36:53 +0200
+Subject: [PATCH] transfer: fix sendrecv() without interim poll
+
+There was a "clever" optimization that skipped sendrecv() handling when
+the transfer's pollset was empty. This happens for paused transfers, for
+example.
+
+Unforunately, if the libcurl application never calls curl_multi_poll(),
+the pollset is and will aways remain empty, prevent the transfer from
+progressing.
+
+Remove this "optimization" and always try send/receive where applicable.
+
+Fixes #14898
+Reported-by: Victor Kislov
+Closes #14901
+--- a/lib/transfer.c
++++ b/lib/transfer.c
+@@ -431,8 +431,6 @@ CURLcode Curl_sendrecv(struct Curl_easy *data, struct curltime *nowp)
+ if(select_bits_paused(data, data->state.select_bits)) {
+ /* leave the bits unchanged, so they'll tell us what to do when
+ * this transfer gets unpaused. */
+- /* DEBUGF(infof(data, "sendrecv, select_bits, early return on PAUSED"));
+- */
+ result = CURLE_OK;
+ goto out;
+ }
+@@ -440,16 +438,13 @@ CURLcode Curl_sendrecv(struct Curl_easy *data, struct curltime *nowp)
+ /* DEBUGF(infof(data, "sendrecv, select_bits %x, RUN", select_bits)); */
+ select_bits = (CURL_CSELECT_OUT|CURL_CSELECT_IN);
+ }
+- else if(data->last_poll.num) {
+- /* The transfer wanted something polled. Let's run all available
+- * send/receives. Worst case we EAGAIN on some. */
+- /* DEBUGF(infof(data, "sendrecv, had poll sockets, RUN")); */
++ else {
++ /* try both directions if the transfer wants it. We used to poll
++ * the socket here and on ran send/recv depending on POLLIN/OUT, but
++ * that does not when connections are multiplexed or handshake,
++ * or other direction reversals are happening. */
+ select_bits = (CURL_CSELECT_OUT|CURL_CSELECT_IN);
+ }
+- else if(data->req.keepon & KEEP_SEND_TIMED) {
+- /* DEBUGF(infof(data, "sendrecv, KEEP_SEND_TIMED, RUN ul")); */
+- select_bits = CURL_CSELECT_OUT;
+- }
+
+ #ifdef USE_HYPER
+ if(data->conn->datastream) {