8000 unbuffered: do not prematurely consume data by ctz · Pull Request #2338 · rustls/rustls · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

unbuffered: do not prematurely consume data #2338

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Feb 25, 2025
Merged

Conversation

ctz
Copy link
Member
@ctz ctz commented Feb 11, 2025

This alters ReadTraffic and ReadEarlyData so that their next_record() functions are where the data is consumed, allowing peek_len() functions work as intended.

fixes #2031

@ctz ctz changed the title unbuffered: do not premature consume data unbuffered: do not prematurely consume data Feb 11, 2025
Copy link
rustls-benchmarking bot commented Feb 11, 2025

Benchmark results

Instruction counts

Significant differences

There are no significant instruction count differences

Other differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_server 10433575 10476608 43033 (0.41%) 0.84%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 1150672 1146002 -4670 (-0.41%) 1.54%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_server 10742071 10700787 -41284 (-0.38%) 1.17%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 8297281 8268463 -28818 (-0.35%) 0.98%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 8279186 8251081 -28105 (-0.34%) 1.27%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_server 10710539 10688755 -21784 (-0.20%) 1.15%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 3085519 3082136 -3383 (-0.11%) 0.51%
handshake_no_resume_ring_1.3_ecdsap256_aes_client 3298388 3300395 2007 (0.06%) 0.23%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 3079783 3078343 -1440 (-0.05%) 0.51%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 2059558 2059436 -122 (-0.01%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_chacha_client 3302123 3301951 -172 (-0.01%) 0.24%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_client 3869905 3869725 -180 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_aes_server 1295804 1295744 -60 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_client 4211899 4211719 -180 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_chacha_server 1297182 1297127 -55 (-0.00%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_client 4294272 4294092 -180 (-0.00%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_client 4557194 4557014 -180 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_server 30396405 30395381 -1024 (-0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_client 1924381 1924323 -58 (-0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_client 1931127 1931069 -58 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_server 30436375 30435486 -889 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_server 30396650 30395770 -880 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_server 30393627 30392860 -767 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_server 30439160 30438468 -692 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_server 30438728 30438071 -657 (-0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 1143759 1143735 -24 (-0.00%) 1.55%
handshake_no_resume_ring_1.3_rsa_aes_client 2330342 2330302 -40 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_client 2336195 2336155 -40 (-0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 2062534 2062565 31 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_client 27853344 27853736 392 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_server 28981748 28981396 -352 (-0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_server 28979315 28978972 -343 (-0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_server 28901149 28900811 -338 (-0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_server 32148706 32148376 -330 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_server 32150871 32150541 -330 (-0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_server 32261476 32261146 -330 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_server 32263641 32263311 -330 (-0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_server 28903293 28903002 -291 (-0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_client 27849069 27848796 -273 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_server 32150919 32150619 -300 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_server 32263689 32263389 -300 (-0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_server 32630622 32630322 -300 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_server 32632798 32632498 -300 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_server 32632988 32632688 -300 (-0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_server 32723682 32723382 -300 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_server 32725858 32725558 -300 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_server 32726018 32725718 -300 (-0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_client 27794054 27793801 -253 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_client 28220521 28220287 -234 (-0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_server 28981735 28981501 -234 (-0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_client 2242647 2242629 -18 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_server 7227432 7227376 -56 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_server 7229602 7229547 -55 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_client 28216557 28216361 -196 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_client 28213445 28213255 -190 (-0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_server 28903134 28902947 -187 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_client 28186723 28186893 170 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_client 27786992 27786825 -167 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_server 5021752 5021722 -30 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_server 11128375 11128320 -55 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_server 11134345 11134290 -55 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_client 30827617 30827497 -120 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_client 30830558 30830438 -120 (-0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_client 30834603 30834483 -120 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_client 30910075 30909955 -120 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_client 30913028 30912908 -120 (-0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_client 30917073 30916953 -120 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_client 31145967 31145847 -120 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_client 31149226 31149106 -120 (-0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_client 31153220 31153100 -120 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_client 31208385 31208265 -120 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_client 31211664 31211544 -120 (-0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_client 31215658 31215538 -120 (-0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_client 27789497 27789418 -79 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_client 34738352 34738264 -88 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_client 28190495 28190438 -57 (-0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_client 27846643 27846695 52 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_client 34740255 34740199 -56 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_client 28183737 28183718 -19 (-0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_client 1716242 1716243 1 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_server 46241641 46241652 11 (0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_client 57980065 57980055 -10 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_server 46248386 46248379 -7 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_client 58075923 58075915 -8 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 92700678 92700688 10 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_server 46407685 46407680 -5 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_server 46461269 46461274 5 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_client 92680103 92680094 -9 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_server 80541801 80541808 7 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 46458305 46458309 4 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_client 58239405 58239410 5 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 80650249 80650245 -4 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_server 80548546 80548543 -3 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_server 80553341 80553338 -3 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_client 58083703 58083701 -2 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_client 58086815 58086813 -2 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_client 58174934 58174936 2 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 58237322 58237324 2 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_client 92669203 92669200 -3 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 80642630 80642632 2 (0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_server 46148666 46148667 1 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 46465928 46465929 1 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 58234447 58234446 -1 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 92698449 92698450 1 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_server 80645597 80645597 0 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_server 3874635 3874635 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_client 92678261 92678261 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_server 46253818 46253818 0 (0.00%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_server 4764122 4764122 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_client 92704680 92704680 0 (0.00%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_server 4299668 4299668 0 (0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_server 11000054 11000054 0 (0.00%) 0.20%

Wall-time

Significant differences

There are no significant wall-time differences

Other differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_no_resume_aws_lc_rs_1.3_rsa_aes 1.12 ms 1.10 ms -0.02 ms (-1.61%) 2.94%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes 1.09 ms 1.07 ms -0.02 ms (-1.46%) 3.23%
handshake_session_id_aws_lc_rs_1.2_rsa_aes 1.64 ms 1.62 ms -0.02 ms (-1.23%) 2.47%
handshake_tickets_aws_lc_rs_1.2_rsa_aes 1.81 ms 1.80 ms -0.02 ms (-0.92%) 3.29%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha 4.30 ms 4.34 ms 0.04 ms (0.88%) 2.09%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha 4.97 ms 5.01 ms 0.04 ms (0.86%) 1.78%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes 4.33 ms 4.36 ms 0.04 ms (0.86%) 2.09%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes 5.21 ms 5.25 ms 0.04 ms (0.83%) 1.05%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes 5.01 ms 5.05 ms 0.04 ms (0.77%) 1.68%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes 4.53 ms 4.56 ms 0.03 ms (0.77%) 2.16%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha 5.18 ms 5.22 ms 0.04 ms (0.74%) 2.03%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha 4.51 ms 4.54 ms 0.03 ms (0.71%) 1.59%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha 1.12 ms 1.11 ms -0.01 ms (-0.65%) 1.14%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha 5.19 ms 5.21 ms 0.03 ms (0.52%) 1.67%
handshake_tickets_aws_lc_rs_1.3_rsa_aes 5.19 ms 5.21 ms 0.02 ms (0.46%) 1.89%
handshake_session_id_aws_lc_rs_1.3_rsa_aes 5.00 ms 5.02 ms 0.02 ms (0.37%) 1.23%
handshake_no_resume_ring_1.3_ecdsap256_chacha 480.02 µs 478.26 µs -1.75 µs (-0.37%) 2.90%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha 4.98 ms 5.00 ms 0.02 ms (0.36%) 1.50%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes 5.22 ms 5.20 ms -0.02 ms (-0.36%) 6.19%
handshake_session_id_ring_1.3_rsa_aes 6.07 ms 6.09 ms 0.02 ms (0.32%) 1.00%
handshake_no_resume_ring_1.3_ecdsap256_aes 482.67 µs 481.28 µs -1.39 µs (-0.29%) 2.63%
handshake_tickets_ring_1.3_rsa_aes 6.14 ms 6.16 ms 0.02 ms (0.27%) 1.00%
handshake_session_id_ring_1.3_ecdsap256_aes 5.58 ms 5.59 ms 0.01 ms (0.25%) 1.03%
handshake_tickets_ring_1.2_rsa_aes 1.61 ms 1.61 ms 0.00 ms (0.24%) 1.42%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes 5.15 ms 5.13 ms -0.01 ms (-0.23%) 6.02%
handshake_tickets_ring_1.3_ecdsap256_aes 5.65 ms 5.66 ms 0.01 ms (0.23%) 1.00%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 458.49 µs 457.47 µs -1.02 µs (-0.22%) 3.99%
handshake_tickets_ring_1.3_ecdsap384_aes 8.76 ms 8.77 ms 0.02 ms (0.19%) 1.00%
handshake_tickets_ring_1.3_rsa_chacha 6.09 ms 6.10 ms 0.01 ms (0.16%) 1.00%
handshake_tickets_ring_1.3_ecdsap384_chacha 8.71 ms 8.72 ms 0.01 ms (0.14%) 1.00%
handshake_no_resume_ring_1.2_rsa_aes 967.51 µs 966.19 µs -1.32 µs (-0.14%) 1.62%
handshake_session_id_ring_1.3_ecdsap384_aes 8.71 ms 8.70 ms -0.01 ms (-0.13%) 1.00%
handshake_tickets_ring_1.3_ecdsap256_chacha 5.60 ms 5.61 ms 0.01 ms (0.13%) 1.00%
handshake_session_id_ring_1.3_rsa_chacha 6.03 ms 6.04 ms 0.01 ms (0.13%) 1.00%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha 13.70 ms 13.68 ms -0.02 ms (-0.12%) 1.91%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes 5.23 ms 5.24 ms 0.01 ms (0.11%) 3.99%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 13.70 ms 13.71 ms 0.01 ms (0.09%) 1.96%
handshake_session_id_ring_1.2_rsa_aes 1.53 ms 1.53 ms 0.00 ms (0.09%) 1.00%
handshake_session_id_ring_1.3_ecdsap256_chacha 5.54 ms 5.54 ms 0.00 ms (0.09%) 1.00%
handshake_no_resume_ring_1.3_rsa_aes 969.86 µs 969.07 µs -0.80 µs (-0.08%) 1.08%
transfer_no_resume_ring_1.2_rsa_aes 6.72 ms 6.73 ms 0.01 ms (0.08%) 3.54%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 1.14 ms 1.14 ms -0.00 ms (-0.06%) 1.15%
transfer_no_resume_ring_1.3_ecdsap256_chacha 13.03 ms 13.03 ms 0.01 ms (0.06%) 1.78%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes 1.15 ms 1.15 ms 0.00 ms (0.06%) 1.00%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes 460.19 µs 459.92 µs -0.27 µs (-0.06%) 3.92%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 13.02 ms 13.03 ms 0.01 ms (0.05%) 1.76%
transfer_no_resume_ring_1.3_ecdsap384_chacha 16.15 ms 16.15 ms 0.01 ms (0.04%) 1.51%
handshake_no_resume_ring_1.3_rsa_chacha 970.92 µs 970.49 µs -0.43 µs (-0.04%) 1.25%
handshake_no_resume_ring_1.3_ecdsap384_aes 3.60 ms 3.60 ms -0.00 ms (-0.04%) 1.00%
handshake_session_id_ring_1.3_ecdsap384_chacha 8.66 ms 8.65 ms -0.00 ms (-0.04%) 1.00%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes 4.55 ms 4.55 ms 0.00 ms (0.04%) 5.15%
transfer_no_resume_ring_1.3_rsa_chacha 13.52 ms 13.52 ms 0.00 ms (0.03%) 1.65%
transfer_no_resume_ring_1.3_ecdsap384_aes 9.43 ms 9.43 ms 0.00 ms (0.02%) 2.74%
transfer_no_resume_ring_1.3_ecdsap256_aes 6.32 ms 6.32 ms 0.00 ms (0.01%) 4.35%
handshake_no_resume_ring_1.3_ecdsap384_chacha 3.60 ms 3.60 ms -0.00 ms (-0.00%) 1.00%
transfer_no_resume_ring_1.3_rsa_aes 6.81 ms 6.81 ms -0.00 ms (-0.00%) 3.87%

Additional information

Historical results

Checkout details:

Copy link
codecov bot commented Feb 11, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 94.89%. Comparing base (3ccfcec) to head (7da79ad).
Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2338      +/-   ##
==========================================
- Coverage   94.89%   94.89%   -0.01%     
==========================================
  Files         103      103              
  Lines       24274    24292      +18     
==========================================
+ Hits        23034    23051      +17     
- Misses       1240     1241       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@ctz ctz force-pushed the jbp-unbuffered-delay-read branch from 68062c6 to ece443f Compare February 17, 2025 13:34
@ctz ctz marked this pull request as ready for review February 17, 2025 15:20
Copy link
Member
@djc djc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a very in-depth review, I don't have all the unbuffered API context swapped in anymore.

} else {
self.taken = true;
Some(Ok(AppDataRecord {
self.chunk = self
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On ReadTraffic Drop, should we put back the chunk if Some?

(I guess this is covered by your commit message saying that next_record() remains one-shot.)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No. This is the point at which the chunk is consumed. We need to save it in self.chunk to get a place for AppDataRecord to borrow from.

ctz added 3 commits February 24, 2025 11:21
Previously, the point at the application is given a `ReadTraffic`
state is when the data is consumed.  That meant
`ReadTraffic::peek_len()` was too late for an application to decide
not to accept the data just yet.

Note that `ReadTraffic::next_record()` remains one-shot, as there
is at most one item in `received_plaintext` in unbuffered mode.
8DDD ctz force-pushed the jbp-unbuffered-delay-read branch from ece443f to 7da79ad Compare February 24, 2025 11:24
@ctz ctz added this pull request to the merge queue Feb 25, 2025
Merged via the queue into main with commit 4015d93 Feb 25, 2025
62 checks passed
@ctz ctz deleted the jbp-unbuffered-delay-read branch February 25, 2025 11:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

unbuffered: No way to refuse a ReadTraffic if there is no space
2 participants
0