changeset 8762:12f18e0bca09 quic

HTTP/3: adjusted control stream parsing. 7.2.1: If a DATA frame is received on a control stream, the recipient MUST respond with a connection error of type H3_FRAME_UNEXPECTED; 7.2.2: If a HEADERS frame is received on a control stream, the recipient MUST respond with a connection error (Section 8) of type H3_FRAME_UNEXPECTED.
author Vladimir Homutov <vl@nginx.com>
date Thu, 22 Apr 2021 13:49:18 +0300
parents 225e9f1dfe7c
children 4117aa7fa38e
files src/http/v3/ngx_http_v3_parse.c
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/v3/ngx_http_v3_parse.c
+++ b/src/http/v3/ngx_http_v3_parse.c
@@ -1069,6 +1069,10 @@ ngx_http_v3_parse_control(ngx_connection
             st->state = sw_max_push_id;
             break;
 
+        case NGX_HTTP_V3_FRAME_DATA:
+        case NGX_HTTP_V3_FRAME_HEADERS:
+            return NGX_HTTP_V3_ERR_FRAME_UNEXPECTED;
+
         default:
             ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0,
                            "http3 parse skip unknown frame");