diff options
| author | Vladimir Homutov <vl@nginx.com> | 2020-03-23 12:57:24 +0300 |
|---|---|---|
| committer | Vladimir Homutov <vl@nginx.com> | 2020-03-23 12:57:24 +0300 |
| commit | b3129b46f69a46a04c1a4dad6137806b948b7a32 (patch) | |
| tree | c07107d147aa0d1be737ab1617800838452148ad /src | |
| parent | 6a3a0ee19f1b37edc9a69765ee745dae96082d96 (diff) | |
| download | nginx-b3129b46f69a46a04c1a4dad6137806b948b7a32.tar.gz nginx-b3129b46f69a46a04c1a4dad6137806b948b7a32.tar.bz2 | |
Skip unknown transport parameters.
Diffstat (limited to 'src')
| -rw-r--r-- | src/event/ngx_event_quic_transport.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/event/ngx_event_quic_transport.c b/src/event/ngx_event_quic_transport.c index 61265b3d3..459d61c2d 100644 --- a/src/event/ngx_event_quic_transport.c +++ b/src/event/ngx_event_quic_transport.c @@ -1227,7 +1227,7 @@ ngx_quic_parse_transport_param(u_char *p, u_char *end, uint16_t id, case NGX_QUIC_TP_STATELESS_RESET_TOKEN: case NGX_QUIC_TP_PREFERRED_ADDRESS: // TODO - return NGX_ERROR; + return NGX_DECLINED; } switch (id) { @@ -1259,7 +1259,7 @@ ngx_quic_parse_transport_param(u_char *p, u_char *end, uint16_t id, break; default: - return NGX_ERROR; + return NGX_DECLINED; } switch (id) { @@ -1320,6 +1320,7 @@ ngx_int_t ngx_quic_parse_transport_params(u_char *p, u_char *end, ngx_quic_tp_t *tp, ngx_log_t *log) { + ngx_int_t rc; #if (quic_version < 0xff00001b) @@ -1348,12 +1349,19 @@ ngx_quic_parse_transport_params(u_char *p, u_char *end, ngx_quic_tp_t *tp, return NGX_ERROR; } - if (ngx_quic_parse_transport_param(p, p + len, id, tp) != NGX_OK) { + rc = ngx_quic_parse_transport_param(p, p + len, id, tp); + + if (rc == NGX_ERROR) { ngx_log_error(NGX_LOG_INFO, log, 0, "failed to parse transport param id 0x%xi data", id); return NGX_ERROR; } + if (rc == NGX_DECLINED) { + ngx_log_error(NGX_LOG_INFO, log, 0, + "unknown transport param id 0x%xi, skipped", id); + } + p += len; }; @@ -1376,12 +1384,19 @@ ngx_quic_parse_transport_params(u_char *p, u_char *end, ngx_quic_tp_t *tp, return NGX_ERROR; } - if (ngx_quic_parse_transport_param(p, p + len, id, tp) != NGX_OK) { + rc = ngx_quic_parse_transport_param(p, p + len, id, tp); + + if (rc == NGX_ERROR) { ngx_log_error(NGX_LOG_INFO, log, 0, "failed to parse transport param id 0x%xi data", id); return NGX_ERROR; } + if (rc == NGX_DECLINED) { + ngx_log_error(NGX_LOG_INFO, log, 0, + "unknown transport param id 0x%xi,skipped", id); + } + p += len; } |
