Mercurial > hg > nginx
changeset 8249:3f4b407fa0b8 quic
Added parsing of CONNECTION_CLOSE2 frame (0x1D).
The difference is that error code refers to application namespace, i.e.
quic error names cannot be used to convert it to string.
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Fri, 20 Mar 2020 14:50:05 +0300 |
parents | abb7c1a4c9d5 |
children | 8f9cb6d66662 |
files | src/event/ngx_event_quic_transport.c src/event/ngx_event_quic_transport.h |
diffstat | 2 files changed, 22 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/src/event/ngx_event_quic_transport.c +++ b/src/event/ngx_event_quic_transport.c @@ -622,6 +622,7 @@ ngx_quic_parse_frame(ngx_quic_header_t * break; case NGX_QUIC_FT_CONNECTION_CLOSE: + case NGX_QUIC_FT_CONNECTION_CLOSE2: p = ngx_quic_parse_int_multi(p, end, &f->u.close.error_code, &f->u.close.frame_type, @@ -640,19 +641,28 @@ ngx_quic_parse_frame(ngx_quic_header_t * return NGX_ERROR; } - if (f->u.close.error_code >= NGX_QUIC_ERR_LAST) { - ngx_log_error(NGX_LOG_ERR, pkt->log, 0, - "unkown error code: %ui, truncated", - f->u.close.error_code); - f->u.close.error_code = NGX_QUIC_ERR_LAST - 1; + if (f->type == NGX_QUIC_FT_CONNECTION_CLOSE) { + + if (f->u.close.error_code >= NGX_QUIC_ERR_LAST) { + ngx_log_error(NGX_LOG_ERR, pkt->log, 0, + "unkown error code: %ui, truncated", + f->u.close.error_code); + f->u.close.error_code = NGX_QUIC_ERR_LAST - 1; + } + + ngx_log_debug4(NGX_LOG_DEBUG_EVENT, pkt->log, 0, + "CONN.CLOSE: { %s (0x%xi) type=0x%xi reason='%V'}", + ngx_quic_error_text(f->u.close.error_code), + f->u.close.error_code, f->u.close.frame_type, + &f->u.close.reason); + } else { + + ngx_log_debug3(NGX_LOG_DEBUG_EVENT, pkt->log, 0, + "CONN.CLOSE2: { (0x%xi) type=0x%xi reason '%V'}", + f->u.close.error_code, f->u.close.frame_type, + &f->u.close.reason); } - ngx_log_debug4(NGX_LOG_DEBUG_EVENT, pkt->log, 0, - "CONN.CLOSE: { %s (0x%xi) type=0x%xi reason='%V'}", - ngx_quic_error_text(f->u.close.error_code), - f->u.close.error_code, f->u.close.frame_type, - &f->u.close.reason); - break; case NGX_QUIC_FT_STREAM0:
--- a/src/event/ngx_event_quic_transport.h +++ b/src/event/ngx_event_quic_transport.h @@ -47,7 +47,7 @@ #define NGX_QUIC_FT_PATH_CHALLENGE 0x1A #define NGX_QUIC_FT_PATH_RESPONSE 0x1B #define NGX_QUIC_FT_CONNECTION_CLOSE 0x1C -#define NGX_QUIC_FT_CONNECTION_CLOSE2 0x1D // XXX +#define NGX_QUIC_FT_CONNECTION_CLOSE2 0x1D #define NGX_QUIC_FT_HANDSHAKE_DONE 0x1E /* 22.4. QUIC Transport Error Codes Registry */