curl/scripts
Stefan Eissing 9369c30cd8
lib: Curl_read/Curl_write clarifications
- replace `Curl_read()`, `Curl_write()` and `Curl_nwrite()` to
  clarify when and at what level they operate
- send/recv of transfer related data is now done via
  `Curl_xfer_send()/Curl_xfer_recv()` which no longer has
  socket/socketindex as parameter. It decides on the transfer
  setup of `conn->sockfd` and `conn->writesockfd` on which
  connection filter chain to operate.
- send/recv on a specific connection filter chain is done via
  `Curl_conn_send()/Curl_conn_recv()` which get the socket index
  as parameter.
- rename `Curl_setup_transfer()` to `Curl_xfer_setup()` for
  naming consistency
- clarify that the special CURLE_AGAIN hangling to return
  `CURLE_OK` with length 0 only applies to `Curl_xfer_send()`
  and CURLE_AGAIN is returned by all other send() variants.
- fix a bug in websocket `curl_ws_recv()` that mixed up data
  when it arrived in more than a single chunk (to be made
  into a sperate PR, also)

Added as documented [in
CLIENT-READER.md](5b1f31dfba/docs/CLIENT-READERS.md).

- old `Curl_buffer_send()` completely replaced by new `Curl_req_send()`
- old `Curl_fillreadbuffer()` replaced with `Curl_client_read()`
- HTTP chunked uploads are now formatted in a client reader added when
  needed.
- FTP line-end conversions are done in a client reader added when
  needed.
- when sending requests headers, remaining buffer space is filled with
  body data for sending in "one go". This is independent of the request
  body size. Resolves #12938 as now small and large requests have the
  same code path.

Changes done to test cases:

- test513: now fails before sending request headers as this initial
  "client read" triggers the setup fault. Behaves now the same as in
  hyper build
- test547, test555, test1620: fix the length check in the lib code to
  only fail for reads *smaller* than expected. This was a bug in the
  test code that never triggered in the old implementation.

Closes #12969
2024-02-28 12:58:55 +01:00
..
cd2cd docs: introduce "curldown" for libcurl man page format 2024-01-23 00:29:02 +01:00
cd2nroff cd2nroff: gen: make \> in input to render as plain '>' in output 2024-02-23 13:48:14 +01:00
cdall docs: introduce "curldown" for libcurl man page format 2024-01-23 00:29:02 +01:00
checksrc.pl checksrc.pl: fix handling .checksrc with CRLF 2024-02-18 01:59:44 -05:00
ciconfig.pl autotools: update references to deleted crypt-auth option 2023-10-25 12:45:43 +00:00
cijobs.pl scripts: Fix cijobs.pl for Azure and GHA 2024-02-09 14:48:24 -08:00
cmp-config.pl build: delete HAVE_STDINT_H and HAVE_INTTYPES_H 2023-11-06 17:20:39 +00:00
completion.pl copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
contributors.sh scripts/contri*sh: no longer grep -v ' ' 2023-05-26 08:36:41 +02:00
contrithanks.sh scripts/contri*sh: no longer grep -v ' ' 2023-05-26 08:36:41 +02:00
copyright.pl zuul: stop using this CI service 2023-01-30 15:42:15 +01:00
coverage.sh copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
delta misc: remove duplicate words 2023-08-29 10:39:31 +02:00
firefox-db2pem.sh copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
installcheck.sh scripts: set file mode +x on all perl and shell scripts 2023-01-05 02:34:24 -05:00
log2changes.pl copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
Makefile.am docs: introduce "curldown" for libcurl man page format 2024-01-23 00:29:02 +01:00
mk-ca-bundle.pl copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
nroff2cd docs: introduce "curldown" for libcurl man page format 2024-01-23 00:29:02 +01:00
release-notes.pl copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
schemetable.c scripts: add schemetable.c 2023-11-19 13:57:31 +01:00
singleuse.pl lib: Curl_read/Curl_write clarifications 2024-02-28 12:58:55 +01:00