lib: send eos flag

Adds a `bool eos` flag to send methods to indicate that the data is the
last chunk the invovled transfer wants to send to the server.

This will help protocol filters like HTTP/2 and 3 to forward the
stream's EOF flag and also allow to EAGAIN such calls when buffers are
not yet fully flushed.

Closes #14220
This commit is contained in:
Stefan Eissing 2024-07-18 11:29:37 +02:00 committed by Daniel Stenberg
parent c98f6fcde7
commit be93299f10
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
41 changed files with 200 additions and 166 deletions

View file

@ -187,7 +187,7 @@ static CURLcode gopher_do(struct Curl_easy *data, bool *done)
if(strlen(sel) < 1)
break;
result = Curl_xfer_send(data, sel, k, &amount);
result = Curl_xfer_send(data, sel, k, FALSE, &amount);
if(!result) { /* Which may not have written it all! */
result = Curl_client_write(data, CLIENTWRITE_HEADER, sel, amount);
if(result)
@ -229,7 +229,7 @@ static CURLcode gopher_do(struct Curl_easy *data, bool *done)
free(sel_org);
if(!result)
result = Curl_xfer_send(data, "\r\n", 2, &amount);
result = Curl_xfer_send(data, "\r\n", 2, FALSE, &amount);
if(result) {
failf(data, "Failed sending Gopher request");
return result;