Mercurial > hg > nginx
diff src/event/ngx_event_quic.c @ 8273:cb75f194f1f0 quic
Implemented sending HANDSHAKE_DONE frame after handshake.
This makes it possible to switch to draft 27 by default.
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Tue, 24 Mar 2020 11:59:14 +0300 |
parents | 7f0981be07c4 |
children | ee53bfd8f9ed |
line wrap: on
line diff
--- a/src/event/ngx_event_quic.c Mon Mar 23 20:48:34 2020 +0300 +++ b/src/event/ngx_event_quic.c Tue Mar 24 11:59:14 2020 +0300 @@ -964,9 +964,10 @@ ngx_quic_handle_crypto_frame(ngx_connection_t *c, ngx_quic_header_t *pkt, ngx_quic_crypto_frame_t *f) { - int sslerr; - ssize_t n; - ngx_ssl_conn_t *ssl_conn; + int sslerr; + ssize_t n; + ngx_ssl_conn_t *ssl_conn; + ngx_quic_frame_t *frame; if (f->offset != 0x0) { ngx_log_error(NGX_LOG_INFO, c->log, 0, @@ -1012,6 +1013,17 @@ ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0, "handshake completed successfully"); + + frame = ngx_pcalloc(c->pool, sizeof(ngx_quic_frame_t)); + if (frame == NULL) { + return NGX_ERROR; + } + + /* 12.4 Frames and frame types, figure 8 */ + frame->level = ssl_encryption_application; + frame->type = NGX_QUIC_FT_HANDSHAKE_DONE; + ngx_sprintf(frame->info, "HANDSHAKE DONE on handshake completed"); + ngx_quic_queue_frame(c->quic, frame); } ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0,