Mercurial > hg > nginx
diff src/event/ngx_event_quic.c @ 8235:552d6868091b quic
Implemented send_alert callback, CONNECTION_CLOSE writer.
The callback produces a CONNECTION_CLOSE frame, as per quic-tls-24#section-4.9.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Wed, 18 Mar 2020 23:07:40 +0300 |
parents | 19bb9edcd8bd |
children | d3b26c3bea22 |
line wrap: on
line diff
--- a/src/event/ngx_event_quic.c +++ b/src/event/ngx_event_quic.c @@ -251,6 +251,7 @@ ngx_quic_send_alert(ngx_ssl_conn_t *ssl_ uint8_t alert) { ngx_connection_t *c; + ngx_quic_frame_t *frame; c = ngx_ssl_get_connection((ngx_ssl_conn_t *) ssl_conn); @@ -258,6 +259,21 @@ ngx_quic_send_alert(ngx_ssl_conn_t *ssl_ "ngx_quic_send_alert(), lvl=%d, alert=%d", (int) level, (int) alert); + frame = ngx_pcalloc(c->pool, sizeof(ngx_quic_frame_t)); + if (frame == NULL) { + return 0; + } + + frame->level = level; + frame->type = NGX_QUIC_FT_CONNECTION_CLOSE; + frame->u.close.error_code = 0x100 + alert; + + ngx_quic_queue_frame(c->quic, frame); + + if (ngx_quic_output(c) != NGX_OK) { + return 0; + } + return 1; }