changeset 8414:49a98760afd2 quic

Rejected forbidden transport parameters with TRANSPORT_PARAMETER_ERROR.
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 29 May 2020 12:55:39 +0300
parents f27fdf86275d
children 125cbfa77013
files src/event/ngx_event_quic_transport.c
diffstat 1 files changed, 10 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/event/ngx_event_quic_transport.c
+++ b/src/event/ngx_event_quic_transport.c
@@ -1356,14 +1356,6 @@ ngx_quic_parse_transport_param(u_char *p
     uint64_t   varint;
 
     switch (id) {
-    case NGX_QUIC_TP_ORIGINAL_CONNECTION_ID:
-    case NGX_QUIC_TP_STATELESS_RESET_TOKEN:
-    case NGX_QUIC_TP_PREFERRED_ADDRESS:
-        /* TODO: implement */
-        return NGX_DECLINED;
-    }
-
-    switch (id) {
 
     case NGX_QUIC_TP_DISABLE_ACTIVE_MIGRATION:
         /* zero-length option */
@@ -1464,6 +1456,16 @@ ngx_quic_parse_transport_params(u_char *
             return NGX_ERROR;
         }
 
+        switch (id) {
+        case NGX_QUIC_TP_ORIGINAL_CONNECTION_ID:
+        case NGX_QUIC_TP_PREFERRED_ADDRESS:
+        case NGX_QUIC_TP_STATELESS_RESET_TOKEN:
+            ngx_log_error(NGX_LOG_INFO, log, 0,
+                          "quic client sent forbidden transport param"
+                          " id 0x%xi", id);
+            return NGX_ERROR;
+        }
+
         p = ngx_quic_parse_int(p, end, &len);
         if (p == NULL) {
             ngx_log_error(NGX_LOG_INFO, log, 0,