Mercurial > hg > nginx
comparison src/http/v3/ngx_http_v3_module.c @ 9158:ad3d34ddfdcc
QUIC: "handshake_timeout" configuration parameter.
Previously QUIC did not have such parameter and handshake duration was
controlled by HTTP/3. However that required creating and storing HTTP/3
session on first client datagram. Apparently there's no convenient way to
store the session object until QUIC handshake is complete. In the followup
patches session creation will be postponed to init() callback.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Wed, 13 Sep 2023 17:59:37 +0400 |
parents | f742b1b46901 |
children |
comparison
equal
deleted
inserted
replaced
9157:daf8f5ba23d8 | 9158:ad3d34ddfdcc |
---|---|
190 * set by ngx_pcalloc(): | 190 * set by ngx_pcalloc(): |
191 * | 191 * |
192 * h3scf->quic.host_key = { 0, NULL } | 192 * h3scf->quic.host_key = { 0, NULL } |
193 * h3scf->quic.stream_reject_code_uni = 0; | 193 * h3scf->quic.stream_reject_code_uni = 0; |
194 * h3scf->quic.disable_active_migration = 0; | 194 * h3scf->quic.disable_active_migration = 0; |
195 * h3scf->quic.timeout = 0; | 195 * h3scf->quic.idle_timeout = 0; |
196 * h3scf->max_blocked_streams = 0; | 196 * h3scf->max_blocked_streams = 0; |
197 */ | 197 */ |
198 | 198 |
199 h3scf->enable = NGX_CONF_UNSET; | 199 h3scf->enable = NGX_CONF_UNSET; |
200 h3scf->enable_hq = NGX_CONF_UNSET; | 200 h3scf->enable_hq = NGX_CONF_UNSET; |
221 ngx_http_v3_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) | 221 ngx_http_v3_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) |
222 { | 222 { |
223 ngx_http_v3_srv_conf_t *prev = parent; | 223 ngx_http_v3_srv_conf_t *prev = parent; |
224 ngx_http_v3_srv_conf_t *conf = child; | 224 ngx_http_v3_srv_conf_t *conf = child; |
225 | 225 |
226 ngx_http_ssl_srv_conf_t *sscf; | 226 ngx_http_ssl_srv_conf_t *sscf; |
227 ngx_http_core_srv_conf_t *cscf; | |
227 | 228 |
228 ngx_conf_merge_value(conf->enable, prev->enable, 1); | 229 ngx_conf_merge_value(conf->enable, prev->enable, 1); |
229 | 230 |
230 ngx_conf_merge_value(conf->enable_hq, prev->enable_hq, 0); | 231 ngx_conf_merge_value(conf->enable_hq, prev->enable_hq, 0); |
231 | 232 |
278 conf->quic.sr_token_key, NGX_QUIC_SR_KEY_LEN) | 279 conf->quic.sr_token_key, NGX_QUIC_SR_KEY_LEN) |
279 != NGX_OK) | 280 != NGX_OK) |
280 { | 281 { |
281 return NGX_CONF_ERROR; | 282 return NGX_CONF_ERROR; |
282 } | 283 } |
284 | |
285 cscf = ngx_http_conf_get_module_srv_conf(cf, ngx_http_core_module); | |
286 conf->quic.handshake_timeout = cscf->client_header_timeout; | |
283 | 287 |
284 sscf = ngx_http_conf_get_module_srv_conf(cf, ngx_http_ssl_module); | 288 sscf = ngx_http_conf_get_module_srv_conf(cf, ngx_http_ssl_module); |
285 conf->quic.ssl = &sscf->ssl; | 289 conf->quic.ssl = &sscf->ssl; |
286 | 290 |
287 return NGX_CONF_OK; | 291 return NGX_CONF_OK; |