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
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) {