Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

connection flushing #14271

Closed
wants to merge 6 commits into from
Closed

connection flushing #14271

wants to merge 6 commits into from

Conversation

icing
Copy link
Contributor

@icing icing commented Jul 25, 2024

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_NEED_FLUSH to query filters
  • add CF_CTRL_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
  • implement flush handling in the HTTP/2 proxy connection filter

Since HTTP/3 filters have other PRs pending, I hold back the implementation there.

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
Replace blocked send handling with new connection flush.
@icing icing requested a review from bagder July 26, 2024 13:48
@icing icing added the feature-window A merge of this requires an open feature window label Jul 29, 2024
@bagder bagder closed this in 709a6a3 Aug 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-window A merge of this requires an open feature window
Development

Successfully merging this pull request may close these issues.

2 participants