changeset 8325:9b9d592c0da3 quic

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.
author Vladimir Homutov <vl@nginx.com>
date Mon, 06 Apr 2020 11:16:45 +0300
parents 7cca3624f9c4
children 1cdd53532309
files src/event/ngx_event_quic.c
diffstat 1 files changed, 15 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/event/ngx_event_quic.c
+++ b/src/event/ngx_event_quic.c
@@ -1117,19 +1117,15 @@ ngx_quic_payload_handler(ngx_connection_
             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_
             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_
             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;
         }