Stefan Eissing 14bcea074a
lib: enhance client reader resume + rewind
- update client reader documentation
- client reader, add rewind capabilities
    - tell creader to rewind on next start
    - Curl_client_reset() will keep reader for future rewind if requested
    - add Curl_client_cleanup() for freeing all resources independent of
      rewinds
    - add Curl_client_start() to trigger rewinds
    - move rewind code from multi.c to sendf.c and make part of
      "cr-in"'s implementation
- http, move the "resume_from" handling into the client readers
    - the setup of a HTTP request is reshuffled to follow:
      * determine method, target, auth negotiation
      * install the client reader(s) for the request, including crlf
        conversions and "chunked" encoding
      * apply ranges to client reader
      * concat request headers, upgrades, cookies, etc.
      * complete request by determining Content-Length of installed
        readers in combination with method
      * send
    - add methods for client readers to
      * return the overall length they will generate (or -1 when unknown)
      * return the amount of data on the CLIENT level, so that
        expect-100 can decide if it want to apply itself
      * set a "resume_from" offset or fail if unsupported
    - struct HTTP has become largely empty now
- rename `Client_reader_*` to `Curl_creader_*`

Closes #13026
2024-03-05 13:26:05 +01:00
..
2024-02-20 11:36:12 +01:00
2024-03-01 09:59:48 +01:00
2021-09-09 07:53:42 +02:00
2023-07-20 23:41:47 +02:00
2023-08-31 23:02:10 +00:00
2024-03-01 09:59:48 +01:00
2024-02-27 08:58:10 +01:00
2024-02-08 23:14:33 +01:00
2024-03-01 09:59:48 +01:00
2023-10-27 00:37:34 +00:00
2023-09-28 22:58:36 +02:00
2023-05-23 10:42:09 +02:00
2023-07-31 11:51:34 +02:00
2024-03-01 09:59:48 +01:00
2024-02-01 13:04:56 +01:00
2023-12-18 10:34:22 +01:00
2024-02-27 08:58:10 +01:00
2024-02-20 14:01:59 +01:00
2024-02-20 14:01:59 +01:00
2024-02-20 14:01:59 +01:00
2024-02-20 14:01:59 +01:00
2023-10-21 14:36:51 +02:00
2023-10-21 14:36:51 +02:00
2023-09-30 11:45:39 +02:00
2023-09-30 11:45:39 +02:00
2024-03-01 01:16:24 -08:00
2023-04-14 09:26:26 +02:00
2023-09-20 13:38:42 +02:00
2023-10-28 00:27:20 -04:00
2024-03-01 09:59:48 +01:00
2023-09-25 20:12:18 +02:00
2023-09-25 20:12:18 +02:00
2024-02-05 22:29:21 +01:00
2023-12-11 23:29:02 +01:00
2023-09-25 20:12:18 +02:00
2024-02-27 08:58:10 +01:00
2023-12-18 14:56:57 +00:00
2024-02-27 08:58:10 +01:00
2023-07-29 23:42:53 +02:00
2023-07-29 23:42:53 +02:00
2024-02-27 08:58:10 +01:00
2023-12-16 13:12:22 +00:00
2024-03-01 09:59:48 +01:00
2024-02-27 08:58:10 +01:00
2024-02-27 08:58:10 +01:00
2024-02-27 08:58:10 +01:00
2023-12-27 09:28:48 +01:00
2023-12-27 09:28:48 +01:00
2023-10-21 14:38:21 +02:00
2023-08-30 11:38:27 +02:00
2024-03-04 08:42:56 +01:00
2024-03-04 08:42:56 +01:00
2023-12-18 14:56:57 +00:00
2024-03-01 09:59:48 +01:00
2024-03-04 08:42:56 +01:00
2024-02-27 08:58:10 +01:00
2024-02-27 14:13:56 +01:00
2024-01-16 16:43:24 +01:00