aboutsummaryrefslogtreecommitdiff
path: root/src/event/ngx_event_quic.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/event/ngx_event_quic.c')
-rw-r--r--src/event/ngx_event_quic.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/event/ngx_event_quic.c b/src/event/ngx_event_quic.c
index cd5b530c9..2b226a3eb 100644
--- a/src/event/ngx_event_quic.c
+++ b/src/event/ngx_event_quic.c
@@ -1040,6 +1040,7 @@ static ngx_int_t
ngx_quic_init_connection(ngx_connection_t *c)
{
u_char *p;
+ size_t clen;
ssize_t len;
ngx_ssl_conn_t *ssl_conn;
ngx_quic_connection_t *qc;
@@ -1064,7 +1065,7 @@ ngx_quic_init_connection(ngx_connection_t *c)
}
#endif
- len = ngx_quic_create_transport_params(NULL, NULL, &qc->tp);
+ len = ngx_quic_create_transport_params(NULL, NULL, &qc->tp, &clen);
/* always succeeds */
p = ngx_pnalloc(c->pool, len);
@@ -1072,7 +1073,7 @@ ngx_quic_init_connection(ngx_connection_t *c)
return NGX_ERROR;
}
- len = ngx_quic_create_transport_params(p, p + len, &qc->tp);
+ len = ngx_quic_create_transport_params(p, p + len, &qc->tp, NULL);
if (len < 0) {
return NGX_ERROR;
}
@@ -1087,6 +1088,14 @@ ngx_quic_init_connection(ngx_connection_t *c)
return NGX_ERROR;
}
+#if NGX_OPENSSL_QUIC_ZRTT_CTX
+ if (SSL_set_quic_early_data_context(ssl_conn, p, clen) == 0) {
+ ngx_log_error(NGX_LOG_INFO, c->log, 0,
+ "quic SSL_set_quic_early_data_context() failed");
+ return NGX_ERROR;
+ }
+#endif
+
qc->max_streams = qc->tp.initial_max_streams_bidi;
qc->state = ssl_encryption_handshake;