http: fix sending of large requests

- refs #11342 where errors with git https interactions
  were observed
- problem was caused by 1st sends of size larger than 64KB
  which resulted in later retries of 64KB only
- limit sending of 1st block to 64KB
- adjust h2/h3 filters to cope with parsing the HTTP/1.1
  formatted request in chunks

- introducing Curl_nwrite() as companion to Curl_write()
  for the many cases where the sockindex is already known

Fixes #11342 (again)
Closes #11803
This commit is contained in:
Stefan Eissing 2023-09-05 13:44:13 +02:00 committed by Daniel Stenberg
parent a8a82140aa
commit 2485547da0
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
13 changed files with 162 additions and 92 deletions

View file

@ -51,4 +51,11 @@ CURLcode Curl_write(struct Curl_easy *data,
const void *mem, size_t len,
ssize_t *written);
/* internal write-function, using sockindex for connection destination */
CURLcode Curl_nwrite(struct Curl_easy *data,
int sockindex,
const void *buf,
size_t blen,
ssize_t *pnwritten);
#endif /* HEADER_CURL_SENDF_H */