Go to file
Stefan Eissing 88332049ea
http/2: unstick uploads
- refs #11157 and #11175 where uploads get stuck or lead to RST streams
- fixes our h2 send behaviour to continue sending in the nghttp2 session
  as long as it wants to. This will empty our send buffer as long as
  the remote stream/connection window allows.
- in case the window is exhausted, the data remaining in the send buffer
  will wait for a WINDOW_UPDATE from the server. Which is a socket event
  that engages our transfer loop again
- the problem in the issue was that we did not exhaust the window, but
  left data in the sendbuffer and no further socket events did happen.
  The server was just waiting for us to send more.
- relatedly, there was an issue fixed that closing a stream with KEEP_HOLD
  set kept the transfer from shutting down - as it should have - leading
  to a timeout.

Closes #11176
2023-05-22 16:19:13 +02:00
.circleci CI: update wolfssl / wolfssh to 5.5.4 / 1.4.12 2023-02-13 17:13:32 +01:00
.github workflows/macos: add a job using gcc + debug + secure transport 2023-05-21 14:02:31 +02:00
.lift tests/http: more tests with specific clients 2023-04-26 23:24:46 +02:00
.reuse mlc_config.json: remove this linkcheck CI job config file 2023-05-15 13:23:54 +02:00
CMake cmake: speed up and extend picky clang/gcc options 2023-04-16 22:28:25 +00:00
docs lib: fix conversion warnings with gcc on macOS 2023-05-21 14:02:31 +02:00
include curl_easy_getinfo: clarify on return data types 2023-05-18 20:46:36 +02:00
lib http/2: unstick uploads 2023-05-22 16:19:13 +02:00
LICENSES copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
m4 configure: generate a script to run the compiler 2023-05-18 20:57:11 +02:00
packages os400: update chkstrings.c 2023-05-18 12:11:02 +02: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 checksrc: disallow spaces before labels 2023-05-18 20:45:04 +02:00
src lib: fix conversion warnings with gcc on macOS 2023-05-21 14:02:31 +02:00
tests http/2: unstick uploads 2023-05-22 16:19:13 +02:00
winbuild winbuild: fix makefile clean 2023-02-23 03:49:37 -05:00
.azure-pipelines.yml CI: don't run CI jobs if only another CI was changed 2023-04-24 20:46:09 -07:00
.cirrus.yml CI: skip some more builds when possible 2023-03-24 19:59:50 -07: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 rtsp: skip malformed RTSP interleaved frame data 2023-03-30 09:59:09 +02:00
acinclude.m4 copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
appveyor.yml CI: use another glob syntax for matching files on Appveyor 2023-04-28 10:31:28 -07: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 cmake: avoid list(PREPEND) for compatibility 2023-05-20 11:50:40 +00:00
configure.ac configure: fix --help alignment 2023-05-18 23:49:07 +02: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 GIT-INFO: add --with-openssl 2023-05-14 23:22:23 +02:00
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 cmake: speed up and extend picky clang/gcc options 2023-04-16 22:28:25 +00: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
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-05-19 16:38:20 +02: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.