]> git.ipfire.org Git - thirdparty/curl.git/commit
HTTP/[23]: continue upload when state.drain is set
authorStefan Eissing <stefan@eissing.org>
Wed, 8 Feb 2023 09:26:58 +0000 (10:26 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 9 Feb 2023 08:13:30 +0000 (09:13 +0100)
commit3de3ea6a646687de2bf4154ce647485a84e1c6f9
tree2750c4c0af3d745157e6ff5548039027ba7cca81
parent8c762f59983a3e9e2b80fdb34aa5e08f1d9a1c7d
HTTP/[23]: continue upload when state.drain is set

- as reported in #10433, HTTP/2 uploads may stall when a response is
  received before the upload is done. This happens when the
  data->state.drain is set for such a transfer, as the special handling
  in transfer.c from then on only cared about downloads.
- add continuation of uploads, if applicable, in this case.
- add pytest case test_07_12_upload_seq_large to reproduce this scenario
  (although, current nghttp2 implementation is using drain less often)

Reported-by: Lucas Pardue
Fixes #10433
Closes #10443
lib/http2.c
lib/transfer.c
tests/tests-httpd/test_07_upload.py
tests/tests-httpd/testenv/env.py