mirror of
https://github.com/curl/curl.git
synced 2026-08-11 09:41:27 +03:00
cfilters: send flush
Since data can be held in connection filter buffers when sending gives EAGAIN, add methods to query this and perform flushing of those buffers. The transfer loop will continue sending until all upload data is processed and the connection is flushed. - add `CF_QUERY_SEND_PENDING` to query filters - add `CF_CTRL_DATA_SEND_FLUSH` to flush filters - change `Curl_req_want_send()` to query the connection if it needs flushing - use `Curl_req_want_send()` to determine the POLLOUT in the PERFORMING multi state - implement flush handling in the HTTP/2 connection filter Closes #14271
This commit is contained in:
parent
911c3166b6
commit
709a6a3965
10 changed files with 278 additions and 100 deletions
|
|
@ -1101,7 +1101,7 @@ static int perform_getsock(struct Curl_easy *data, curl_socket_t *sock)
|
|||
sock[sockindex] = conn->sockfd;
|
||||
}
|
||||
|
||||
if(CURL_WANT_SEND(data)) {
|
||||
if(Curl_req_want_send(data)) {
|
||||
if((conn->sockfd != conn->writesockfd) ||
|
||||
bitmap == GETSOCK_BLANK) {
|
||||
/* only if they are not the same socket and we have a readable
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue