comparison src/http/v3/ngx_http_v3_parse.c @ 7960:5611bbb852ce quic

HTTP/3: simplifed handling ngx_http_v3_parse_literal() return code.
author Roman Arutyunyan <arut@nginx.com>
date Fri, 03 Jul 2020 12:05:05 +0300
parents fdb8edc8e496
children 4fd709540daf
comparison
equal deleted inserted replaced
7959:fdb8edc8e496 7960:5611bbb852ce
622 break; 622 break;
623 623
624 case sw_value: 624 case sw_value:
625 625
626 rc = ngx_http_v3_parse_literal(c, &st->literal, ch); 626 rc = ngx_http_v3_parse_literal(c, &st->literal, ch);
627 627 if (rc != NGX_DONE) {
628 if (rc == NGX_DONE) { 628 return rc;
629 st->value = st->literal.value; 629 }
630 goto done; 630
631 } 631 st->value = st->literal.value;
632 632 goto done;
633 if (rc != NGX_AGAIN) {
634 return rc;
635 }
636
637 break;
638 } 633 }
639 634
640 return NGX_AGAIN; 635 return NGX_AGAIN;
641 636
642 done: 637 done:
701 break; 696 break;
702 697
703 case sw_name: 698 case sw_name:
704 699
705 rc = ngx_http_v3_parse_literal(c, &st->literal, ch); 700 rc = ngx_http_v3_parse_literal(c, &st->literal, ch);
706 701 if (rc != NGX_DONE) {
707 if (rc == NGX_DONE) { 702 return rc;
708 st->name = st->literal.value; 703 }
709 st->state = sw_value_len; 704
710 break; 705 st->name = st->literal.value;
711 } 706 st->state = sw_value_len;
712
713 if (rc != NGX_AGAIN) {
714 return rc;
715 }
716
717 break; 707 break;
718 708
719 case sw_value_len: 709 case sw_value_len:
720 710
721 st->literal.huffman = (ch & 0x80) ? 1 : 0; 711 st->literal.huffman = (ch & 0x80) ? 1 : 0;
739 break; 729 break;
740 730
741 case sw_value: 731 case sw_value:
742 732
743 rc = ngx_http_v3_parse_literal(c, &st->literal, ch); 733 rc = ngx_http_v3_parse_literal(c, &st->literal, ch);
744 734 if (rc != NGX_DONE) {
745 if (rc == NGX_DONE) { 735 return rc;
746 st->value = st->literal.value; 736 }
747 goto done; 737
748 } 738 st->value = st->literal.value;
749 739 goto done;
750 if (rc != NGX_AGAIN) {
751 return rc;
752 }
753
754 break;
755 } 740 }
756 741
757 return NGX_AGAIN; 742 return NGX_AGAIN;
758 743
759 done: 744 done:
874 break; 859 break;
875 860
876 case sw_value: 861 case sw_value:
877 862
878 rc = ngx_http_v3_parse_literal(c, &st->literal, ch); 863 rc = ngx_http_v3_parse_literal(c, &st->literal, ch);
879 864 if (rc != NGX_DONE) {
880 if (rc == NGX_DONE) { 865 return rc;
881 st->value = st->literal.value; 866 }
882 goto done; 867
883 } 868 st->value = st->literal.value;
884 869 goto done;
885 if (rc != NGX_AGAIN) {
886 return rc;
887 }
888
889 break;
890 } 870 }
891 871
892 return NGX_AGAIN; 872 return NGX_AGAIN;
893 873
894 done: 874 done:
1304 break; 1284 break;
1305 1285
1306 case sw_value: 1286 case sw_value:
1307 1287
1308 rc = ngx_http_v3_parse_literal(c, &st->literal, ch); 1288 rc = ngx_http_v3_parse_literal(c, &st->literal, ch);
1309 1289 if (rc != NGX_DONE) {
1310 if (rc == NGX_DONE) { 1290 return rc;
1311 st->value = st->literal.value; 1291 }
1312 goto done; 1292
1313 } 1293 st->value = st->literal.value;
1314 1294 goto done;
1315 if (rc != NGX_AGAIN) {
1316 return rc;
1317 }
1318
1319 break;
1320 } 1295 }
1321 1296
1322 return NGX_AGAIN; 1297 return NGX_AGAIN;
1323 1298
1324 done: 1299 done:
1380 break; 1355 break;
1381 1356
1382 case sw_name: 1357 case sw_name:
1383 1358
1384 rc = ngx_http_v3_parse_literal(c, &st->literal, ch); 1359 rc = ngx_http_v3_parse_literal(c, &st->literal, ch);
1385 1360 if (rc != NGX_DONE) {
1386 if (rc == NGX_DONE) { 1361 return rc;
1387 st->name = st->literal.value; 1362 }
1388 st->state = sw_value_len; 1363
1389 break; 1364 st->name = st->literal.value;
1390 } 1365 st->state = sw_value_len;
1391
1392 if (rc != NGX_AGAIN) {
1393 return rc;
1394 }
1395
1396 break; 1366 break;
1397 1367
1398 case sw_value_len: 1368 case sw_value_len:
1399 1369
1400 st->literal.huffman = (ch & 0x80) ? 1 : 0; 1370 st->literal.huffman = (ch & 0x80) ? 1 : 0;
1418 break; 1388 break;
1419 1389
1420 case sw_value: 1390 case sw_value:
1421 1391
1422 rc = ngx_http_v3_parse_literal(c, &st->literal, ch); 1392 rc = ngx_http_v3_parse_literal(c, &st->literal, ch);
1423 1393 if (rc != NGX_DONE) {
1424 if (rc == NGX_DONE) { 1394 return rc;
1425 st->value = st->literal.value; 1395 }
1426 goto done; 1396
1427 } 1397 st->value = st->literal.value;
1428 1398 goto done;
1429 if (rc != NGX_AGAIN) {
1430 return rc;
1431 }
1432
1433 break;
1434 } 1399 }
1435 1400
1436 return NGX_AGAIN; 1401 return NGX_AGAIN;
1437 1402
1438 done: 1403 done: