Latest update - 9163

This commit is contained in:
2023-09-23 23:29:22 +09:00
parent b1551b25d1
commit 7389910b3e
10 changed files with 41 additions and 26 deletions
-4
View File
@@ -324,10 +324,6 @@ typedef struct {
#endif
#endif
#if (NGX_HTTP_V3 || NGX_COMPAT)
ngx_http_v3_session_t *v3_session;
#endif
ngx_chain_t *busy;
ngx_int_t nbusy;
+3 -1
View File
@@ -30,6 +30,8 @@ ngx_http_v3_init_session(ngx_connection_t *c)
goto failed;
}
h3c->http_connection = hc;
ngx_queue_init(&h3c->blocked);
h3c->keepalive.log = c->log;
@@ -48,7 +50,7 @@ ngx_http_v3_init_session(ngx_connection_t *c)
cln->handler = ngx_http_v3_cleanup_session;
cln->data = h3c;
hc->v3_session = h3c;
c->data = h3c;
return NGX_OK;
+6 -3
View File
@@ -78,11 +78,12 @@
#define NGX_HTTP_V3_ERR_DECODER_STREAM_ERROR 0x202
#define ngx_http_quic_get_connection(c) \
((ngx_http_connection_t *) ((c)->quic ? (c)->quic->parent->data \
#define ngx_http_v3_get_session(c) \
((ngx_http_v3_session_t *) ((c)->quic ? (c)->quic->parent->data \
: (c)->data))
#define ngx_http_v3_get_session(c) ngx_http_quic_get_connection(c)->v3_session
#define ngx_http_quic_get_connection(c) \
(ngx_http_v3_get_session(c)->http_connection)
#define ngx_http_v3_get_module_loc_conf(c, module) \
ngx_http_get_module_loc_conf(ngx_http_quic_get_connection(c)->conf_ctx, \
@@ -120,6 +121,8 @@ struct ngx_http_v3_parse_s {
struct ngx_http_v3_session_s {
ngx_http_connection_t *http_connection;
ngx_http_v3_dynamic_table_t table;
ngx_event_t keepalive;
+6 -2
View File
@@ -192,7 +192,7 @@ ngx_http_v3_create_srv_conf(ngx_conf_t *cf)
* 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;
*/
@@ -223,7 +223,8 @@ ngx_http_v3_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
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);
@@ -281,6 +282,9 @@ ngx_http_v3_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
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;
+6 -12
View File
@@ -58,30 +58,20 @@ static const struct {
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) {
if (ngx_http_v3_init_session(c) != NGX_OK) {
ngx_http_close_connection(c);
return;
}
h3scf = ngx_http_get_module_srv_conf(hc->conf_ctx, ngx_http_v3_module);
h3scf->quic.idle_timeout = clcf->keepalive_timeout;
h3c = hc->v3_session;
ngx_add_timer(&h3c->keepalive, cscf->client_header_timeout);
h3scf->quic.timeout = clcf->keepalive_timeout;
ngx_quic_run(c, &h3scf->quic);
return;
}
@@ -118,6 +108,10 @@ ngx_http_v3_init(ngx_connection_t *c)
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0, "http3 init");
if (ngx_http_v3_init_session(c) != NGX_OK) {
return NGX_ERROR;
}
h3c = ngx_http_v3_get_session(c);
clcf = ngx_http_v3_get_module_loc_conf(c, ngx_http_core_module);
ngx_add_timer(&h3c->keepalive, clcf->keepalive_timeout);