mirror of
https://github.com/curl/curl.git
synced 2024-12-21 06:50:10 +08:00
quiche: enable quiche to handle timeout events
In parallel with ngtcp2, quiche also offers the `quiche_conn_on_timeout` interface for the application to invoke upon timer expiration. Therefore, invoking the `on_timeout` function of the Connection is crucial to ensure seamless functionality of quiche with timeout events. Closes #11654
This commit is contained in:
parent
bcc51b76c5
commit
23c3dc20c1
@ -747,10 +747,20 @@ static CURLcode cf_flush_egress(struct Curl_cfilter *cf,
|
||||
struct cf_quiche_ctx *ctx = cf->ctx;
|
||||
ssize_t nread;
|
||||
CURLcode result;
|
||||
int64_t expiry_ns;
|
||||
int64_t timeout_ns;
|
||||
struct read_ctx readx;
|
||||
size_t pkt_count, gsolen;
|
||||
|
||||
expiry_ns = quiche_conn_timeout_as_nanos(ctx->qconn);
|
||||
if(!expiry_ns) {
|
||||
quiche_conn_on_timeout(ctx->qconn);
|
||||
if(quiche_conn_is_closed(ctx->qconn)) {
|
||||
failf(data, "quiche_conn_on_timeout closed the connection");
|
||||
return CURLE_SEND_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
result = vquic_flush(cf, data, &ctx->q);
|
||||
if(result) {
|
||||
if(result == CURLE_AGAIN) {
|
||||
|
Loading…
Reference in New Issue
Block a user