Mercurial > hg > nginx-quic
comparison src/event/ngx_event_quic_transport.c @ 7728:66f59c67adf4 quic
Skip unknown transport parameters.
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Mon, 23 Mar 2020 12:57:24 +0300 |
parents | 55a3a9c50af2 |
children | c58bbe31e87d |
comparison
equal
deleted
inserted
replaced
7727:55a3a9c50af2 | 7728:66f59c67adf4 |
---|---|
1225 switch (id) { | 1225 switch (id) { |
1226 case NGX_QUIC_TP_ORIGINAL_CONNECTION_ID: | 1226 case NGX_QUIC_TP_ORIGINAL_CONNECTION_ID: |
1227 case NGX_QUIC_TP_STATELESS_RESET_TOKEN: | 1227 case NGX_QUIC_TP_STATELESS_RESET_TOKEN: |
1228 case NGX_QUIC_TP_PREFERRED_ADDRESS: | 1228 case NGX_QUIC_TP_PREFERRED_ADDRESS: |
1229 // TODO | 1229 // TODO |
1230 return NGX_ERROR; | 1230 return NGX_DECLINED; |
1231 } | 1231 } |
1232 | 1232 |
1233 switch (id) { | 1233 switch (id) { |
1234 | 1234 |
1235 case NGX_QUIC_TP_DISABLE_ACTIVE_MIGRATION: | 1235 case NGX_QUIC_TP_DISABLE_ACTIVE_MIGRATION: |
1257 return NGX_ERROR; | 1257 return NGX_ERROR; |
1258 } | 1258 } |
1259 break; | 1259 break; |
1260 | 1260 |
1261 default: | 1261 default: |
1262 return NGX_ERROR; | 1262 return NGX_DECLINED; |
1263 } | 1263 } |
1264 | 1264 |
1265 switch (id) { | 1265 switch (id) { |
1266 | 1266 |
1267 case NGX_QUIC_TP_MAX_IDLE_TIMEOUT: | 1267 case NGX_QUIC_TP_MAX_IDLE_TIMEOUT: |
1318 | 1318 |
1319 ngx_int_t | 1319 ngx_int_t |
1320 ngx_quic_parse_transport_params(u_char *p, u_char *end, ngx_quic_tp_t *tp, | 1320 ngx_quic_parse_transport_params(u_char *p, u_char *end, ngx_quic_tp_t *tp, |
1321 ngx_log_t *log) | 1321 ngx_log_t *log) |
1322 { | 1322 { |
1323 ngx_int_t rc; | |
1323 | 1324 |
1324 #if (quic_version < 0xff00001b) | 1325 #if (quic_version < 0xff00001b) |
1325 | 1326 |
1326 uint16_t id, len, tp_len; | 1327 uint16_t id, len, tp_len; |
1327 | 1328 |
1346 ngx_log_error(NGX_LOG_INFO, log, 0, | 1347 ngx_log_error(NGX_LOG_INFO, log, 0, |
1347 "failed to parse transport param id 0x%xi length", id); | 1348 "failed to parse transport param id 0x%xi length", id); |
1348 return NGX_ERROR; | 1349 return NGX_ERROR; |
1349 } | 1350 } |
1350 | 1351 |
1351 if (ngx_quic_parse_transport_param(p, p + len, id, tp) != NGX_OK) { | 1352 rc = ngx_quic_parse_transport_param(p, p + len, id, tp); |
1353 | |
1354 if (rc == NGX_ERROR) { | |
1352 ngx_log_error(NGX_LOG_INFO, log, 0, | 1355 ngx_log_error(NGX_LOG_INFO, log, 0, |
1353 "failed to parse transport param id 0x%xi data", id); | 1356 "failed to parse transport param id 0x%xi data", id); |
1354 return NGX_ERROR; | 1357 return NGX_ERROR; |
1355 } | 1358 } |
1356 | 1359 |
1360 if (rc == NGX_DECLINED) { | |
1361 ngx_log_error(NGX_LOG_INFO, log, 0, | |
1362 "unknown transport param id 0x%xi, skipped", id); | |
1363 } | |
1364 | |
1357 p += len; | 1365 p += len; |
1358 }; | 1366 }; |
1359 | 1367 |
1360 #else | 1368 #else |
1361 | 1369 |
1374 ngx_log_error(NGX_LOG_INFO, log, 0, | 1382 ngx_log_error(NGX_LOG_INFO, log, 0, |
1375 "failed to parse transport param id 0x%xi length", id); | 1383 "failed to parse transport param id 0x%xi length", id); |
1376 return NGX_ERROR; | 1384 return NGX_ERROR; |
1377 } | 1385 } |
1378 | 1386 |
1379 if (ngx_quic_parse_transport_param(p, p + len, id, tp) != NGX_OK) { | 1387 rc = ngx_quic_parse_transport_param(p, p + len, id, tp); |
1388 | |
1389 if (rc == NGX_ERROR) { | |
1380 ngx_log_error(NGX_LOG_INFO, log, 0, | 1390 ngx_log_error(NGX_LOG_INFO, log, 0, |
1381 "failed to parse transport param id 0x%xi data", id); | 1391 "failed to parse transport param id 0x%xi data", id); |
1382 return NGX_ERROR; | 1392 return NGX_ERROR; |
1393 } | |
1394 | |
1395 if (rc == NGX_DECLINED) { | |
1396 ngx_log_error(NGX_LOG_INFO, log, 0, | |
1397 "unknown transport param id 0x%xi,skipped", id); | |
1383 } | 1398 } |
1384 | 1399 |
1385 p += len; | 1400 p += len; |
1386 | 1401 |
1387 } | 1402 } |