curl/lib/vquic
Stefan Eissing cab2d56ea5
h2/h3: replace state.drain counter with state.dselect_bits
- `drain` was used by http/2 and http/3 implementations to indicate
  that the transfer requires send/recv independant from its socket
  poll state. Intended as a counter, it was used as bool flag only.
- a similar mechanism exists on `connectdata->cselect_bits` where
  specific protocols can indicate something similar, only for the
  whole connection.
- `cselect_bits` are cleard in transfer.c on use and, importantly,
  also set when the transfer loop expended its `maxloops` tries.
  `drain` was not cleared by transfer and the http2/3 implementations
  had to take care of that.
- `dselect_bits` is cleared *and* set by the transfer loop. http2/3
  does no longer clear it, only set when new events happen.

This change unifies the handling of socket poll overrides, extending
`cselect_bits` by a easy handle specific value and a common treatment in
transfers.

Closes #11005
2023-04-25 17:49:28 +02:00
..
curl_msh3.c h2/h3: replace state.drain counter with state.dselect_bits 2023-04-25 17:49:28 +02:00
curl_msh3.h quic: rename vquic implementations, fix for quiche build. 2023-01-05 23:39:49 +01:00
curl_ngtcp2.c h2/h3: replace state.drain counter with state.dselect_bits 2023-04-25 17:49:28 +02:00
curl_ngtcp2.h ngtcp2: adjust config and code checks for ngtcp2 without nghttp3 2023-03-23 15:39:13 +01:00
curl_quiche.c h2/h3: replace state.drain counter with state.dselect_bits 2023-04-25 17:49:28 +02:00
curl_quiche.h quic: rename vquic implementations, fix for quiche build. 2023-01-05 23:39:49 +01:00
vquic_int.h http3: improvements across backends 2023-03-31 15:44:57 +02:00
vquic.c h2/h3: replace state.drain counter with state.dselect_bits 2023-04-25 17:49:28 +02:00
vquic.h connections: introduce http/3 happy eyeballs 2023-02-02 09:57:34 +01:00