Go to file
Stefan Eissing 821f6e2a89
CURLOPT_PIPEWAIT: allow waited reuse also for subsequent connections
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
2023-02-21 11:12:48 +01:00
.circleci CI: update wolfssl / wolfssh to 5.5.4 / 1.4.12 2023-02-13 17:13:32 +01:00
.github GHA: update rustls dependency to 0.9.2 2023-02-18 09:53:58 +01:00
.lift tests-httpd: basic infra to run curl against an apache httpd plus nghttpx for h3 2023-01-09 17:40:04 +01:00
.reuse packages: remove Android, update README 2023-02-06 08:18:21 +01:00
CMake cmake: fix dev warning due to mismatched arg 2023-02-12 01:45:48 -05:00
docs THANKS: add contributors from 7.88.1 2023-02-20 08:24:46 +01:00
include RELEASE-NOTES: synced 2023-02-20 23:54:13 +01:00
lib CURLOPT_PIPEWAIT: allow waited reuse also for subsequent connections 2023-02-21 11:12:48 +01:00
LICENSES copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
m4 curl_setup: Suppress OpenSSL 3 deprecation warnings 2023-02-18 19:02:37 -05:00
packages os400: correct Curl_os400_sendto() 2023-02-17 14:49:51 +01:00
plan9 copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
projects build-openssl.bat: keep OpenSSL 3 engine binaries 2023-02-18 19:02:24 -05:00
scripts scripts/delta: show percent of number of files changed since last tag 2023-02-10 18:52:16 +01:00
src tool_operate: avoid fclose(NULL) on bad header dump file 2023-02-21 10:34:29 +01:00
tests CURLOPT_PIPEWAIT: allow waited reuse also for subsequent connections 2023-02-21 11:12:48 +01:00
winbuild winbuild: document that arm64 is supported 2023-01-24 03:42:17 -05:00
.azure-pipelines.yml copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.cirrus.yml copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.dcignore copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.dir-locals.el copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.git-blame-ignore-revs copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.gitattributes copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.gitignore copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.mailmap mailmap: Thomas1664 on github 2023-02-03 10:04:34 +01:00
acinclude.m4 copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
appveyor.yml copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
buildconf copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
buildconf.bat copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
CHANGES
CMakeLists.txt curl_setup: Suppress OpenSSL 3 deprecation warnings 2023-02-18 19:02:37 -05:00
configure.ac connections: introduce http/3 happy eyeballs 2023-02-02 09:57:34 +01:00
COPYING copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl-config.in copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
GIT-INFO
libcurl.pc.in copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
MacOSX-Framework copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
Makefile.am copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
Makefile.dist copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
maketgz copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
mlc_config.json
README docs: minor grammar fixes 2022-09-29 10:44:12 +02:00
README.md copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
RELEASE-NOTES RELEASE-NOTES: synced 2023-02-20 23:54:13 +01:00
SECURITY.md copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00

curl logo

Curl is a command-line tool for transferring data specified with URL syntax. Find out how to use curl by reading the curl.1 man page or the MANUAL document. Find out how to install Curl by reading the INSTALL document.

libcurl is the library curl is using to do its job. It is readily available to be used by your software. Read the libcurl.3 man page to learn how.

You can find answers to the most frequent questions we get in the FAQ document.

Study the COPYING file for distribution terms.

Contact

If you have problems, questions, ideas or suggestions, please contact us by posting to a suitable mailing list.

All contributors to the project are listed in the THANKS document.

Commercial support

For commercial support, maybe private and dedicated help with your problems or applications using (lib)curl visit the support page.

Website

Visit the curl website for the latest news and downloads.

Git

To download the latest source from the Git server, do this:

git clone https://github.com/curl/curl.git

(you will get a directory named curl created, filled with the source code)

Security problems

Report suspected security problems via our HackerOne page and not in public.

Notice

Curl contains pieces of source code that is Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan. This notice is included here to comply with the distribution terms.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor.