qc = ngx_quic_get_connection(c);
ngx_add_timer(c->read, qc->tp.max_idle_timeout);
+ ngx_add_timer(&qc->close, qc->conf->handshake_timeout);
+
ngx_quic_connstate_dbg(c);
c->read->handler = ngx_quic_input_handler;
ngx_quic_free_frames(c, &qc->send_ctx[i].sent);
}
+ if (qc->close.timer_set) {
+ ngx_del_timer(&qc->close);
+ }
+
if (rc == NGX_DONE) {
/*
ngx_flag_t retry;
ngx_flag_t gso_enabled;
ngx_flag_t disable_active_migration;
- ngx_msec_t timeout;
+ ngx_msec_t handshake_timeout;
+ ngx_msec_t idle_timeout;
ngx_str_t host_key;
size_t stream_buffer_size;
ngx_uint_t max_concurrent_streams_bidi;
qc->streams.initialized = 1;
+ if (!qc->closing && qc->close.timer_set) {
+ ngx_del_timer(&qc->close);
+ }
+
return NGX_OK;
}
* tp->preferred_address = NULL
*/
- tp->max_idle_timeout = qcf->timeout;
+ tp->max_idle_timeout = qcf->idle_timeout;
tp->max_udp_payload_size = NGX_QUIC_MAX_UDP_PAYLOAD_SIZE;
* h3scf->quic.host_key = { 0, NULL }
* h3scf->quic.stream_reject_code_uni = 0;
* h3scf->quic.disable_active_migration = 0;
- * h3scf->quic.timeout = 0;
+ * h3scf->quic.idle_timeout = 0;
* h3scf->max_blocked_streams = 0;
*/
ngx_http_v3_srv_conf_t *prev = parent;
ngx_http_v3_srv_conf_t *conf = child;
- ngx_http_ssl_srv_conf_t *sscf;
+ ngx_http_ssl_srv_conf_t *sscf;
+ ngx_http_core_srv_conf_t *cscf;
ngx_conf_merge_value(conf->enable, prev->enable, 1);
return NGX_CONF_ERROR;
}
+ cscf = ngx_http_conf_get_module_srv_conf(cf, ngx_http_core_module);
+ conf->quic.handshake_timeout = cscf->client_header_timeout;
+
sscf = ngx_http_conf_get_module_srv_conf(cf, ngx_http_ssl_module);
conf->quic.ssl = &sscf->ssl;
void
ngx_http_v3_init_stream(ngx_connection_t *c)
{
- ngx_http_v3_session_t *h3c;
ngx_http_connection_t *hc, *phc;
ngx_http_v3_srv_conf_t *h3scf;
ngx_http_core_loc_conf_t *clcf;
- ngx_http_core_srv_conf_t *cscf;
hc = c->data;
hc->ssl = 1;
clcf = ngx_http_get_module_loc_conf(hc->conf_ctx, ngx_http_core_module);
- cscf = ngx_http_get_module_srv_conf(hc->conf_ctx, ngx_http_core_module);
h3scf = ngx_http_get_module_srv_conf(hc->conf_ctx, ngx_http_v3_module);
if (c->quic == NULL) {
return;
}
- h3c = hc->v3_session;
- ngx_add_timer(&h3c->keepalive, cscf->client_header_timeout);
-
- h3scf->quic.timeout = clcf->keepalive_timeout;
+ h3scf->quic.idle_timeout = clcf->keepalive_timeout;
ngx_quic_run(c, &h3scf->quic);
return;
}