Date: Monday, March 9, 2020 @ 13:50:45 Author: eworm Revision: 377214
archrelease: copy trunk to testing-x86_64 Added: curl/repos/testing-x86_64/0001-Revert-pause-force-drain-the-transfer-on-unpause.patch (from rev 377213, curl/trunk/0001-Revert-pause-force-drain-the-transfer-on-unpause.patch) curl/repos/testing-x86_64/0002-pause-force-a-connection-re-check-after-unpausing.patch (from rev 377213, curl/trunk/0002-pause-force-a-connection-re-check-after-unpausing.patch) curl/repos/testing-x86_64/0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch (from rev 377213, curl/trunk/0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch) curl/repos/testing-x86_64/0004-socks4-fix-host-resolve-regression.patch (from rev 377213, curl/trunk/0004-socks4-fix-host-resolve-regression.patch) curl/repos/testing-x86_64/PKGBUILD (from rev 377213, curl/trunk/PKGBUILD) Deleted: curl/repos/testing-x86_64/0001-Revert-pause-force-drain-the-transfer-on-unpause.patch curl/repos/testing-x86_64/0002-pause-force-a-connection-re-check-after-unpausing.patch curl/repos/testing-x86_64/0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch curl/repos/testing-x86_64/PKGBUILD -----------------------------------------------------------------------+ 0001-Revert-pause-force-drain-the-transfer-on-unpause.patch | 110 ++++---- 0002-pause-force-a-connection-re-check-after-unpausing.patch | 66 ++--- 0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch | 74 ++--- 0004-socks4-fix-host-resolve-regression.patch | 43 +++ PKGBUILD | 131 +++++----- 5 files changed, 235 insertions(+), 189 deletions(-) Deleted: 0001-Revert-pause-force-drain-the-transfer-on-unpause.patch =================================================================== --- 0001-Revert-pause-force-drain-the-transfer-on-unpause.patch 2020-03-09 13:50:37 UTC (rev 377213) +++ 0001-Revert-pause-force-drain-the-transfer-on-unpause.patch 2020-03-09 13:50:45 UTC (rev 377214) @@ -1,55 +0,0 @@ -From 8aa04e9a24932b830bc5eaf6838dea5a3329341e Mon Sep 17 00:00:00 2001 -From: Daniel Stenberg <dan...@haxx.se> -Date: Thu, 5 Mar 2020 23:45:36 +0100 -Subject: [PATCH] Revert "pause: force-drain the transfer on unpause" - -This reverts commit fa0216b294af4c7113a9040ca65eefc7fc18ac1c (from #5000) - -Clearly that didn't solve the problem correctly. - -Reported-by: Christopher Reid -Reopens #4966 -Fixes #5044 ---- - lib/easy.c | 1 - - lib/transfer.c | 5 ++--- - 2 files changed, 2 insertions(+), 4 deletions(-) - -diff --git a/lib/easy.c b/lib/easy.c -index 1a6912748..454621076 100644 ---- a/lib/easy.c -+++ b/lib/easy.c -@@ -1033,7 +1033,6 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action) - to have this handle checked soon */ - if((newstate & (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) != - (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) { -- data->state.drain++; - Curl_expire(data, 0, EXPIRE_RUN_NOW); /* get this handle going again */ - if(data->multi) - Curl_update_timer(data->multi); -diff --git a/lib/transfer.c b/lib/transfer.c -index 827076183..ead8b36db 100644 ---- a/lib/transfer.c -+++ b/lib/transfer.c -@@ -5,7 +5,7 @@ - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * -- * Copyright (C) 1998 - 2020, Daniel Stenberg, <dan...@haxx.se>, et al. -+ * Copyright (C) 1998 - 2019, Daniel Stenberg, <dan...@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms -@@ -1217,8 +1217,7 @@ CURLcode Curl_readwrite(struct connectdata *conn, - else - fd_write = CURL_SOCKET_BAD; - -- if(data->state.drain) { -- data->state.drain--; -+ if(conn->data->state.drain) { - select_res |= CURL_CSELECT_IN; - DEBUGF(infof(data, "Curl_readwrite: forcibly told to drain data\n")); - } --- -2.25.1 - Copied: curl/repos/testing-x86_64/0001-Revert-pause-force-drain-the-transfer-on-unpause.patch (from rev 377213, curl/trunk/0001-Revert-pause-force-drain-the-transfer-on-unpause.patch) =================================================================== --- 0001-Revert-pause-force-drain-the-transfer-on-unpause.patch (rev 0) +++ 0001-Revert-pause-force-drain-the-transfer-on-unpause.patch 2020-03-09 13:50:45 UTC (rev 377214) @@ -0,0 +1,55 @@ +From 8aa04e9a24932b830bc5eaf6838dea5a3329341e Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg <dan...@haxx.se> +Date: Thu, 5 Mar 2020 23:45:36 +0100 +Subject: [PATCH] Revert "pause: force-drain the transfer on unpause" + +This reverts commit fa0216b294af4c7113a9040ca65eefc7fc18ac1c (from #5000) + +Clearly that didn't solve the problem correctly. + +Reported-by: Christopher Reid +Reopens #4966 +Fixes #5044 +--- + lib/easy.c | 1 - + lib/transfer.c | 5 ++--- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/lib/easy.c b/lib/easy.c +index 1a6912748..454621076 100644 +--- a/lib/easy.c ++++ b/lib/easy.c +@@ -1033,7 +1033,6 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action) + to have this handle checked soon */ + if((newstate & (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) != + (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) { +- data->state.drain++; + Curl_expire(data, 0, EXPIRE_RUN_NOW); /* get this handle going again */ + if(data->multi) + Curl_update_timer(data->multi); +diff --git a/lib/transfer.c b/lib/transfer.c +index 827076183..ead8b36db 100644 +--- a/lib/transfer.c ++++ b/lib/transfer.c +@@ -5,7 +5,7 @@ + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * +- * Copyright (C) 1998 - 2020, Daniel Stenberg, <dan...@haxx.se>, et al. ++ * Copyright (C) 1998 - 2019, Daniel Stenberg, <dan...@haxx.se>, et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms +@@ -1217,8 +1217,7 @@ CURLcode Curl_readwrite(struct connectdata *conn, + else + fd_write = CURL_SOCKET_BAD; + +- if(data->state.drain) { +- data->state.drain--; ++ if(conn->data->state.drain) { + select_res |= CURL_CSELECT_IN; + DEBUGF(infof(data, "Curl_readwrite: forcibly told to drain data\n")); + } +-- +2.25.1 + Deleted: 0002-pause-force-a-connection-re-check-after-unpausing.patch =================================================================== --- 0002-pause-force-a-connection-re-check-after-unpausing.patch 2020-03-09 13:50:37 UTC (rev 377213) +++ 0002-pause-force-a-connection-re-check-after-unpausing.patch 2020-03-09 13:50:45 UTC (rev 377214) @@ -1,33 +0,0 @@ -From e040146f22608fd92c44be2447a6505141a8a867 Mon Sep 17 00:00:00 2001 -From: Daniel Stenberg <dan...@haxx.se> -Date: Fri, 6 Mar 2020 10:04:28 +0100 -Subject: [PATCH] pause: force a connection (re-)check after unpausing - -There might be data available that was already read off the socket, for -example in the TLS layer. - -Reported-by: Anders Berg -Fixes #4966 -Closes #5049 ---- - lib/easy.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/lib/easy.c b/lib/easy.c -index 33bc1aab7..f7a6d5c60 100644 ---- a/lib/easy.c -+++ b/lib/easy.c -@@ -1047,6 +1047,10 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action) - if((newstate & (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) != - (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) { - Curl_expire(data, 0, EXPIRE_RUN_NOW); /* get this handle going again */ -+ -+ /* force a recv/send check of this connection, as the data might've been -+ read off the socket already */ -+ data->conn->cselect_bits = CURL_CSELECT_IN | CURL_CSELECT_OUT; - if(data->multi) - Curl_update_timer(data->multi); - } --- -2.25.1 - Copied: curl/repos/testing-x86_64/0002-pause-force-a-connection-re-check-after-unpausing.patch (from rev 377213, curl/trunk/0002-pause-force-a-connection-re-check-after-unpausing.patch) =================================================================== --- 0002-pause-force-a-connection-re-check-after-unpausing.patch (rev 0) +++ 0002-pause-force-a-connection-re-check-after-unpausing.patch 2020-03-09 13:50:45 UTC (rev 377214) @@ -0,0 +1,33 @@ +From e040146f22608fd92c44be2447a6505141a8a867 Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg <dan...@haxx.se> +Date: Fri, 6 Mar 2020 10:04:28 +0100 +Subject: [PATCH] pause: force a connection (re-)check after unpausing + +There might be data available that was already read off the socket, for +example in the TLS layer. + +Reported-by: Anders Berg +Fixes #4966 +Closes #5049 +--- + lib/easy.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/lib/easy.c b/lib/easy.c +index 33bc1aab7..f7a6d5c60 100644 +--- a/lib/easy.c ++++ b/lib/easy.c +@@ -1047,6 +1047,10 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action) + if((newstate & (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) != + (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) { + Curl_expire(data, 0, EXPIRE_RUN_NOW); /* get this handle going again */ ++ ++ /* force a recv/send check of this connection, as the data might've been ++ read off the socket already */ ++ data->conn->cselect_bits = CURL_CSELECT_IN | CURL_CSELECT_OUT; + if(data->multi) + Curl_update_timer(data->multi); + } +-- +2.25.1 + Deleted: 0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch =================================================================== --- 0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch 2020-03-09 13:50:37 UTC (rev 377213) +++ 0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch 2020-03-09 13:50:45 UTC (rev 377214) @@ -1,37 +0,0 @@ -From 64258bd0aa6ad23195f6be32e6febf7439ab7984 Mon Sep 17 00:00:00 2001 -From: Daniel Stenberg <dan...@haxx.se> -Date: Tue, 3 Mar 2020 08:10:09 +0100 -Subject: [PATCH] pause: return early for calls that don't change pause state - -Reviewed-by: Patrick Monnerat -Ref: #4833 -Closes #5026 ---- - lib/easy.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/lib/easy.c b/lib/easy.c -index 454621076ab..2446557f4d2 100644 ---- a/lib/easy.c -+++ b/lib/easy.c -@@ -975,6 +975,7 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action) - { - struct SingleRequest *k = &data->req; - CURLcode result = CURLE_OK; -+ int oldstate = k->keepon & (KEEP_RECV_PAUSE| KEEP_SEND_PAUSE); - - /* first switch off both pause bits */ - int newstate = k->keepon &~ (KEEP_RECV_PAUSE| KEEP_SEND_PAUSE); -@@ -983,6 +984,12 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action) - newstate |= ((action & CURLPAUSE_RECV)?KEEP_RECV_PAUSE:0) | - ((action & CURLPAUSE_SEND)?KEEP_SEND_PAUSE:0); - -+ if((newstate & (KEEP_RECV_PAUSE| KEEP_SEND_PAUSE)) == oldstate) { -+ /* Not changing any pause state, return */ -+ DEBUGF(infof(data, "pause: no change, early return\n")); -+ return CURLE_OK; -+ } -+ - /* put it back in the keepon */ - k->keepon = newstate; - Copied: curl/repos/testing-x86_64/0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch (from rev 377213, curl/trunk/0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch) =================================================================== --- 0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch (rev 0) +++ 0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch 2020-03-09 13:50:45 UTC (rev 377214) @@ -0,0 +1,37 @@ +From 64258bd0aa6ad23195f6be32e6febf7439ab7984 Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg <dan...@haxx.se> +Date: Tue, 3 Mar 2020 08:10:09 +0100 +Subject: [PATCH] pause: return early for calls that don't change pause state + +Reviewed-by: Patrick Monnerat +Ref: #4833 +Closes #5026 +--- + lib/easy.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/lib/easy.c b/lib/easy.c +index 454621076ab..2446557f4d2 100644 +--- a/lib/easy.c ++++ b/lib/easy.c +@@ -975,6 +975,7 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action) + { + struct SingleRequest *k = &data->req; + CURLcode result = CURLE_OK; ++ int oldstate = k->keepon & (KEEP_RECV_PAUSE| KEEP_SEND_PAUSE); + + /* first switch off both pause bits */ + int newstate = k->keepon &~ (KEEP_RECV_PAUSE| KEEP_SEND_PAUSE); +@@ -983,6 +984,12 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action) + newstate |= ((action & CURLPAUSE_RECV)?KEEP_RECV_PAUSE:0) | + ((action & CURLPAUSE_SEND)?KEEP_SEND_PAUSE:0); + ++ if((newstate & (KEEP_RECV_PAUSE| KEEP_SEND_PAUSE)) == oldstate) { ++ /* Not changing any pause state, return */ ++ DEBUGF(infof(data, "pause: no change, early return\n")); ++ return CURLE_OK; ++ } ++ + /* put it back in the keepon */ + k->keepon = newstate; + Copied: curl/repos/testing-x86_64/0004-socks4-fix-host-resolve-regression.patch (from rev 377213, curl/trunk/0004-socks4-fix-host-resolve-regression.patch) =================================================================== --- 0004-socks4-fix-host-resolve-regression.patch (rev 0) +++ 0004-socks4-fix-host-resolve-regression.patch 2020-03-09 13:50:45 UTC (rev 377214) @@ -0,0 +1,43 @@ +From f0e81605451b363617889820e17a35c262fdee78 Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg <dan...@haxx.se> +Date: Sun, 8 Mar 2020 17:24:50 +0100 +Subject: [PATCH] socks4: fix host resolve regression + +1. The socks4 state machine was broken in the host resolving phase + +2. The code now insists on IPv4-only when using SOCKS4 as the protocol +only supports that. + +Regression from #4907 and 4a4b63d, shipped in 7.69.0 + +Reported-by: amishmm on github +Bug: https://github.com/curl/curl/issues/5053#issuecomment-596191594 +Closes #5061 +--- + lib/socks.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/lib/socks.c b/lib/socks.c +index 754726f6fb8..37099130e5d 100644 +--- a/lib/socks.c ++++ b/lib/socks.c +@@ -205,6 +205,8 @@ CURLcode Curl_SOCKS4(const char *proxy_user, + + switch(sx->state) { + case CONNECT_SOCKS_INIT: ++ /* SOCKS4 can only do IPv4, insist! */ ++ conn->ip_version = CURL_IPRESOLVE_V4; + if(conn->bits.httpproxy) + infof(conn->data, "SOCKS4%s: connecting to HTTP proxy %s port %d\n", + protocol4a ? "a" : "", hostname, remote_port); +@@ -261,8 +263,8 @@ CURLcode Curl_SOCKS4(const char *proxy_user, + } + else { + result = Curl_resolv_check(data->conn, &dns); +- /* stay in the state or error out */ +- return result; ++ if(!dns) ++ return result; + } + /* FALLTHROUGH */ + CONNECT_RESOLVED: Deleted: PKGBUILD =================================================================== --- PKGBUILD 2020-03-09 13:50:37 UTC (rev 377213) +++ PKGBUILD 2020-03-09 13:50:45 UTC (rev 377214) @@ -1,64 +0,0 @@ -# Maintainer: Dave Reisner <dreis...@archlinux.org> -# Contributor: Angel Velasquez <an...@archlinux.org> -# Contributor: Eric Belanger <e...@archlinux.org> -# Contributor: Lucien Immink <l.imm...@student.fnt.hvu.nl> -# Contributor: Daniel J Griffiths <ghost1...@archlinux.us> - -pkgname=curl -pkgver=7.69.0 -pkgrel=4 -pkgdesc="An URL retrieval utility and library" -arch=('x86_64') -url="https://curl.haxx.se" -license=('MIT') -depends=('ca-certificates' 'krb5' 'libssh2' 'openssl' 'zlib' 'libpsl' 'libnghttp2' - 'libidn2' 'libidn2.so') -provides=('libcurl.so') -source=("https://curl.haxx.se/download/$pkgname-$pkgver.tar.gz"{,.asc} - 0001-Revert-pause-force-drain-the-transfer-on-unpause.patch - 0002-pause-force-a-connection-re-check-after-unpausing.patch - 0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch) -sha512sums=('0ecd9e6e55cb19400fafdcd723c72667903ec760652e60fe0b884a672e1ac5d8667c8837422145a9af995ffe36d31a2685296f272ebddf1f5f1a7b12baf0fbad' - 'SKIP' - '6aaafcb580f88c715a294ea7b53877a405a4f6c4a338d830380a5c97a324268a287c893ee6fd24c3b69dc0566275336ec74c3816f2202e12d39840360d6784f0' - 'bc384dcfef4f6ca8d52171b97d5979c5b043e70d756836f87449ea0108d9615521408fa71c330c4b627738978eacd24de80a0e93438532a8f48a4d049e83334e' - '743b646307021d3d96146c30e18379253364b2b228e319377bc3300f0dac6dcac36ed347139028e346091eea98521ffd134f54bc809bddb61d45d400d50d875d') -validpgpkeys=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg - -prepare() { - cd "$pkgname-$pkgver" - - patch -Np1 <../0001-Revert-pause-force-drain-the-transfer-on-unpause.patch - patch -Np1 <../0002-pause-force-a-connection-re-check-after-unpausing.patch - patch -Np1 <../0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch -} - -build() { - cd "$pkgname-$pkgver" - - ./configure \ - --prefix=/usr \ - --mandir=/usr/share/man \ - --disable-ldap \ - --disable-ldaps \ - --disable-manual \ - --enable-ipv6 \ - --enable-versioned-symbols \ - --enable-threaded-resolver \ - --with-gssapi \ - --with-libssh2 \ - --with-random=/dev/urandom \ - --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt - - make -} - -package() { - cd "$pkgname-$pkgver" - - make DESTDIR="$pkgdir" install - make DESTDIR="$pkgdir" install -C scripts - - # license - install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 COPYING -} Copied: curl/repos/testing-x86_64/PKGBUILD (from rev 377213, curl/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2020-03-09 13:50:45 UTC (rev 377214) @@ -0,0 +1,67 @@ +# Maintainer: Dave Reisner <dreis...@archlinux.org> +# Contributor: Angel Velasquez <an...@archlinux.org> +# Contributor: Eric Belanger <e...@archlinux.org> +# Contributor: Lucien Immink <l.imm...@student.fnt.hvu.nl> +# Contributor: Daniel J Griffiths <ghost1...@archlinux.us> + +pkgname=curl +pkgver=7.69.0 +pkgrel=5 +pkgdesc="An URL retrieval utility and library" +arch=('x86_64') +url="https://curl.haxx.se" +license=('MIT') +depends=('ca-certificates' 'krb5' 'libssh2' 'openssl' 'zlib' 'libpsl' 'libnghttp2' + 'libidn2' 'libidn2.so') +provides=('libcurl.so') +source=("https://curl.haxx.se/download/$pkgname-$pkgver.tar.gz"{,.asc} + 0001-Revert-pause-force-drain-the-transfer-on-unpause.patch + 0002-pause-force-a-connection-re-check-after-unpausing.patch + 0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch + 0004-socks4-fix-host-resolve-regression.patch) +sha512sums=('0ecd9e6e55cb19400fafdcd723c72667903ec760652e60fe0b884a672e1ac5d8667c8837422145a9af995ffe36d31a2685296f272ebddf1f5f1a7b12baf0fbad' + 'SKIP' + '6aaafcb580f88c715a294ea7b53877a405a4f6c4a338d830380a5c97a324268a287c893ee6fd24c3b69dc0566275336ec74c3816f2202e12d39840360d6784f0' + 'bc384dcfef4f6ca8d52171b97d5979c5b043e70d756836f87449ea0108d9615521408fa71c330c4b627738978eacd24de80a0e93438532a8f48a4d049e83334e' + '743b646307021d3d96146c30e18379253364b2b228e319377bc3300f0dac6dcac36ed347139028e346091eea98521ffd134f54bc809bddb61d45d400d50d875d' + 'd1c24632409852026ced30fd38d302b4c48778290c61c15af7bd2fc00f4862bfb910a9b38575082074f8b97e6a618d63a64a8cb6a578b51f3a23fbb43fed4a69') +validpgpkeys=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg + +prepare() { + cd "$pkgname-$pkgver" + + patch -Np1 <../0001-Revert-pause-force-drain-the-transfer-on-unpause.patch + patch -Np1 <../0002-pause-force-a-connection-re-check-after-unpausing.patch + patch -Np1 <../0003-pause-return-early-for-calls-that-don-t-change-pause-state.patch + patch -Np1 <../0004-socks4-fix-host-resolve-regression.patch +} + +build() { + cd "$pkgname-$pkgver" + + ./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --disable-ldap \ + --disable-ldaps \ + --disable-manual \ + --enable-ipv6 \ + --enable-versioned-symbols \ + --enable-threaded-resolver \ + --with-gssapi \ + --with-libssh2 \ + --with-random=/dev/urandom \ + --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt + + make +} + +package() { + cd "$pkgname-$pkgver" + + make DESTDIR="$pkgdir" install + make DESTDIR="$pkgdir" install -C scripts + + # license + install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 COPYING +}