curl/tests/http/testenv
Stefan Eissing 80a3b830cc
http: expect 100 rework
Move all handling of HTTP's `Expect: 100-continue` feature into a client
reader. Add sending flag `KEEP_SEND_TIMED` that triggers transfer
sending on general events like a timer.

HTTP installs a `CURL_CR_PROTOCOL` reader when announcing `Expect:
100-continue`. That reader works as follows:

- on first invocation, records time, starts the `EXPIRE_100_TIMEOUT`
  timer, disables `KEEP_SEND`, enables `KEEP_SEND_TIMER` and returns 0,
  eos=FALSE like a paused upload.

- on subsequent invocation it checks if the timer has expired. If so, it
  enables `KEEP_SEND` and switches to passing through reads to the
  underlying readers.

Transfer handling's `readwrite()` will be invoked when a timer expires
(like `EXPIRE_100_TIMEOUT`) or when data from the server arrives. Seeing
`KEEP_SEND_TIMER`, it will try to upload more data, which triggers
reading from the client readers again. Which then may lead to a new
pausing or cause the upload to start.

Flags and timestamps connected to this have been moved from
`SingleRequest` into the reader's context.

Closes #13110
2024-03-18 12:41:56 +01:00
..
mod_curltest http: expect 100 rework 2024-03-18 12:41:56 +01:00
__init__.py pytest: Scorecard tracking CPU and RSS 2024-01-25 09:16:23 +01:00
caddy.py http2: flow control and buffer improvements 2023-03-30 23:11:26 +02:00
certs.py https-proxy: use IP address and cert with ip in alt names 2024-02-06 10:10:14 +01:00
client.py websocket: fix curl_ws_recv() 2024-02-20 13:57:58 +01:00
curl.py https-proxy: use IP address and cert with ip in alt names 2024-02-06 10:10:14 +01:00
env.py mbedtls: fix pytest for newer versions 2024-03-18 12:37:00 +01:00
httpd.py vtls: revert "receive max buffer" + add test case 2024-02-07 14:46:41 +01:00
nghttpx.py http3: initial support for OpenSSL 3.2 QUIC stack 2024-01-22 16:15:45 +01:00
ports.py tidy-up: mostly whitespace nits 2023-08-31 23:02:10 +00:00
ws_echo_server.py tests/http: more tests with specific clients 2023-04-26 23:24:46 +02:00