Ignore non-yet-implemented frames.

Such frames are grouped together in a switch and just ignored, instead of
closing the connection  This may improve test coverage.  All such frames
require acknowledgment.
This commit is contained in:
Vladimir Homutov 2020-04-06 11:16:45 +03:00
parent c025e2cf80
commit c0c3a400ef

View file

@ -1117,19 +1117,15 @@ ngx_quic_payload_handler(ngx_connection_t *c, ngx_quic_header_t *pkt)
break;
case NGX_QUIC_FT_PADDING:
/* no action required */
break;
case NGX_QUIC_FT_PING:
ack_this = 1;
break;
case NGX_QUIC_FT_NEW_CONNECTION_ID:
ack_this = 1;
break;
case NGX_QUIC_FT_CONNECTION_CLOSE:
case NGX_QUIC_FT_CONNECTION_CLOSE2:
do_close = 1;
break;
@ -1156,14 +1152,6 @@ ngx_quic_payload_handler(ngx_connection_t *c, ngx_quic_header_t *pkt)
ack_this = 1;
break;
case NGX_QUIC_FT_RESET_STREAM:
/* TODO: handle */
break;
case NGX_QUIC_FT_STOP_SENDING:
/* TODO: handle; need ack ? */
break;
case NGX_QUIC_FT_STREAMS_BLOCKED:
case NGX_QUIC_FT_STREAMS_BLOCKED2:
@ -1189,6 +1177,20 @@ ngx_quic_payload_handler(ngx_connection_t *c, ngx_quic_header_t *pkt)
ack_this = 1;
break;
case NGX_QUIC_FT_NEW_CONNECTION_ID:
case NGX_QUIC_FT_RETIRE_CONNECTION_ID:
case NGX_QUIC_FT_NEW_TOKEN:
case NGX_QUIC_FT_RESET_STREAM:
case NGX_QUIC_FT_STOP_SENDING:
case NGX_QUIC_FT_PATH_CHALLENGE:
case NGX_QUIC_FT_PATH_RESPONSE:
/* TODO: handle */
ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0,
"frame handler not implemented");
ack_this = 1;
break;
default:
return NGX_ERROR;
}