@fails-components/webtransport 0.0.1-rc.2 → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +5 -2
- package/package.json +1 -1
- package/platform/net/quiche/common/platform/impl/quiche_flags_impl.h +1 -54
- package/platform/quiche_platform_impl/quic_flags_impl.h +1 -27
- package/platform/quiche_platform_impl/quiche_flag_utils_impl.h +1 -16
- package/platform/quiche_platform_impl/quiche_flags_impl.h +6 -1
- package/src/http3client.cc +14 -2
- package/src/http3client.h +10 -15
- package/src/webtransport.js +4 -1
- package/third_party/boringssl/src/.clang-format +11 -0
- package/third_party/boringssl/src/crypto/CMakeLists.txt +0 -1
- package/third_party/boringssl/src/crypto/asn1/a_strex.c +61 -95
- package/third_party/boringssl/src/crypto/asn1/asn1_par.c +31 -9
- package/third_party/boringssl/src/crypto/asn1/tasn_dec.c +33 -19
- package/third_party/boringssl/src/crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl +8 -8
- package/third_party/boringssl/src/crypto/cipher_extra/derive_key.c +4 -4
- package/third_party/boringssl/src/crypto/cipher_extra/e_des.c +1 -0
- package/third_party/boringssl/src/crypto/cipher_extra/e_null.c +1 -0
- package/third_party/boringssl/src/crypto/cipher_extra/e_rc2.c +1 -0
- package/third_party/boringssl/src/crypto/cipher_extra/e_rc4.c +2 -0
- package/third_party/boringssl/src/crypto/fipsmodule/bcm.c +1 -0
- package/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl +0 -197
- package/third_party/boringssl/src/crypto/fipsmodule/bn/bn_test.cc +0 -9
- package/third_party/boringssl/src/crypto/fipsmodule/bn/bn_tests.txt +68 -0
- package/third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c +45 -40
- package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +11 -8
- package/third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.c +15 -106
- package/third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.h +5 -1
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +12 -32
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/internal.h +39 -0
- package/third_party/boringssl/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +7 -9
- package/third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c +1 -0
- package/third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c +2 -1
- package/third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -0
- package/third_party/boringssl/src/crypto/fipsmodule/hmac/hmac.c +1 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator.c +1 -0
- package/third_party/boringssl/src/crypto/pkcs8/pkcs8_x509.c +4 -4
- package/third_party/boringssl/src/crypto/x509/algorithm.c +18 -1
- package/third_party/boringssl/src/crypto/x509/x_algor.c +1 -1
- package/third_party/boringssl/src/crypto/x509/x_crl.c +3 -3
- package/third_party/boringssl/src/crypto/x509/x_exten.c +1 -1
- package/third_party/boringssl/src/crypto/x509/x_name.c +1 -1
- package/third_party/boringssl/src/crypto/x509/x_pubkey.c +1 -1
- package/third_party/boringssl/src/crypto/x509/x_req.c +2 -2
- package/third_party/boringssl/src/crypto/x509/x_sig.c +1 -1
- package/third_party/boringssl/src/crypto/x509/x_spki.c +2 -2
- package/third_party/boringssl/src/crypto/x509/x_val.c +1 -1
- package/third_party/boringssl/src/crypto/x509/x_x509.c +2 -2
- package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +1 -1
- package/third_party/boringssl/src/crypto/x509v3/v3_akeya.c +1 -1
- package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +2 -2
- package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +6 -6
- package/third_party/boringssl/src/crypto/x509v3/v3_crld.c +6 -6
- package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +1 -1
- package/third_party/boringssl/src/crypto/x509v3/v3_extku.c +2 -2
- package/third_party/boringssl/src/crypto/x509v3/v3_genn.c +3 -3
- package/third_party/boringssl/src/crypto/x509v3/v3_info.c +3 -3
- package/third_party/boringssl/src/crypto/x509v3/v3_int.c +3 -3
- package/third_party/boringssl/src/crypto/x509v3/v3_ncons.c +2 -2
- package/third_party/boringssl/src/crypto/x509v3/v3_ocsp.c +2 -2
- package/third_party/boringssl/src/crypto/x509v3/v3_pcons.c +1 -1
- package/third_party/boringssl/src/crypto/x509v3/v3_pmaps.c +2 -2
- package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +1 -1
- package/third_party/boringssl/src/decrepit/blowfish/blowfish.c +1 -0
- package/third_party/boringssl/src/decrepit/cast/cast.c +1 -0
- package/third_party/boringssl/src/decrepit/cfb/cfb.c +1 -0
- package/third_party/boringssl/src/decrepit/xts/xts.c +2 -1
- package/third_party/boringssl/src/fuzz/CMakeLists.txt +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip.cc +57 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/0461791e54b4840c109637952eab43d9b938cab8 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/06e57a7b98a403a00822739739924b97ae6c74e9 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/078c3c1199930781466871c8dda69bec379286a4 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/082a991742f652549e4b207100ee521f474e0a99 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/091e3389548686c5038d04e3d76b9c4d30502074 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/13e484c406efe97dc9d91f8b80a27b0e597c34da +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/153d254254345b61e20e7b37637dd6f6fd71ba01 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/163605136e22f5b5302fe60d1f17837bee6b6b2b +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/1a96ec99b487b93052cd860c447e6d126dcc36d4 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/1cc9ad96fcee279e8589b7071c7a0ccd111098f2 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/229b8e1825512868e0e11a199ed71231dd41bb4f +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/236d820eadf7f84d70de7bb8be5f1c57a4005de2 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/24fd9742dbdee3167509db4af245ad6f8c4c1e99 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2896f8deb3c4e8bdfeab743b22c64c92316880f7 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/29b6252fe9c4d1186394b1664c421cca795b61a5 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2b4955132275314d1d377f37f93d8c1879a3519a +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2e7112ac524a7a663632397cbb41f7dfd22e92c6 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/396d197005432accf99bf0f483286e459eb24063 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/3c75fe79266cf639f2180722a3f03f8fc3e25685 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/3fbb104fb0eb6cae4af34d8a516998336b3a6778 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/422fa995b3fdfed572b68b292062c330d6d05272 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/428b48fc494cee828f0c27f77aef477cb2e1fd80 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4bd69e424b6fa38f9e63e58b8d0e95ac2d38d598 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4be7e1f134e1c55aeadeead515200f6f1e6254ba +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4de268400e174db2dc306f45c833cf968a6c6546 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/52d2c7efcd7da0eb7463829e05a598e36729bfae +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/53cf415eb9de49fb5a0cb46e745e413a99aa0779 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/53ea84c48a5792281a46eb5a9c896d54ea3f1838 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5ba93c9db0cff93f52b521d7420e43f6eda2784f +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5bab61eb53176449e25c2c82f172b82cb13ffb9d +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5e5361730362736fe3e2804d8566e3c91454509b +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6654fedb1fc4b07095695b062b5af4c2f12d59ae +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6cad8b2a41194372ec897bece6512fe8331e274d +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6f40330ec07e8e22f113f982b297ff7f86b8e485 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/738f291e53e97c08dae378c71ef70a60e31ae900 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7396791821e64fc9340249a4bcbd2198e9f237db +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7653595e28f23e62ea6707c99ca08c780a69335f +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/77de68daecd823babbb58edb1c8e14d7106e83bb +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7cb5c71603a787032973d6ddc9c2c34638005784 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/80a1e1ae75c1e5ef7bbde5f5877e3e5b26b3cf58 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/872ba8af52a8c1380c388bab0e20bec2e729db80 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/8855f2d904cf1bbaffc54e68d98890fdc9ec14cc +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/8a22f56ee86cc2d67e9610a6b0ed59f21008a341 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/935a69e9f3bfa1dd3bf058fa3e1b953e82195de6 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/951ccb49640c8f9e81fb4e0d82730321f4e15bb3 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/9af1f3ed10c7a54f6b57c344015141cc082db23b +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a0b7dd1684089c63a4aac2e4a832544df4d639d6 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a22d0d3565a509a4bfedce078090d8c6a908d950 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a22f1185582f66227118c8e9002a5c29728f0650 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a457945cb86ec812235f407ed70fe72fbaf694a1 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a4ee44c4e8728d4924642ef8765063262e8c4601 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a4fc609a6546fc0061f499f0faed9054fd388c9a +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a7c13e6fe60eee08b9aac00a095a9301ea1a9824 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a98e22a5a8c2f5dda365d55e76536931010e1560 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/aca6ed86348b1176bfbe4ebf32b2d48a0aa42f9f +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/aeefb82d7f5cc69168aade3b196a84d0f5c14bf2 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b37e0f6fa42840c773747c4cb608c278ab65021d +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b5d4e67f0ec5b1a90100d8ad424d77aea8e16353 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b65ea16ba4dae8599ebbad7c4cb9fcd505edf485 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b95311782071c4d9182c0effe32487fc5cdbd33d +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bbcaf4d15f92bfc6d624eee967fade1a74329f30 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bc26b8c794ac0adf948cbca02e88b3901824ef17 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bc7b23c2c68e4ad33ecea493ff6e60d423371cd0 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bd8daf3e78d8ba3a25838053b6993edc7a21c30e +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/c4d94647e646f02da1736b3179804ad6083acde9 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/c869b259f9f81bec8ed24a9bc2cef35a513fb9fc +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/ceee46f04a09ef5d3342ef25d9f483e861727575 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d05c069216b54f35bc7e3ee08371baee243c089a +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d18c30ba21e0d085dd983ad528f2c9001285d3d2 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d2c00146b2f2bcb4c6cecb731d2062273523d8c8 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d9bc7157a485958a5fce35ce777f551fe3f7d94c +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/defce76f0d3c3e057bb623986bacee7bbd07d1a1 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/df9b696736847e43672b7a99ca05655af8a81135 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/e5b420f71cf412bd9fdebdd46245fabd1f3462e5 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/e7979b0e6e3e9cd64ceab99778c55205d6f92a73 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/ee629f1935abc05fdc32ba314ec1f80f4bff2a17 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/f944dcd635f9801f7ac90a407fbc479964dec024 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/fadcde7d914246ca04bd56e68fd4045b1cf1c5ef +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/fd8be6506a9995f626eef831b9c981a80b0e3640 +0 -0
- package/third_party/boringssl/src/include/openssl/cipher.h +21 -48
- package/third_party/boringssl/src/include/openssl/ssl.h +38 -0
- package/third_party/boringssl/src/ssl/handshake_client.cc +8 -2
- package/third_party/boringssl/src/ssl/internal.h +16 -3
- package/third_party/boringssl/src/ssl/s3_both.cc +23 -1
- package/third_party/boringssl/src/ssl/ssl_lib.cc +94 -1
- package/third_party/boringssl/src/ssl/test/runner/runner.go +192 -0
- package/third_party/boringssl/src/ssl/test/test_config.cc +6 -0
- package/third_party/boringssl/src/ssl/test/test_config.h +1 -0
- package/third_party/boringssl/src/ssl/tls13_client.cc +7 -3
- package/third_party/boringssl/src/ssl/tls13_server.cc +2 -1
- package/third_party/boringssl/src/util/convert_comments.go +23 -0
- package/third_party/boringssl/src/util/fipstools/acvp/acvptool/acvp/acvp.go +1 -1
- package/third_party/boringssl/src/util/fipstools/acvp/modulewrapper/modulewrapper.cc +32 -21
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.cc +1 -1
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.h +1 -1
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_logging_impl.h +3 -2
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc +2 -2
- package/third_party/quiche/quiche/http2/adapter/http2_protocol.h +5 -1
- package/third_party/quiche/quiche/http2/adapter/http2_util.cc +2 -0
- package/third_party/quiche/quiche/http2/adapter/http2_visitor_interface.h +2 -0
- package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +119 -0
- package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +130 -0
- package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +23 -12
- package/third_party/quiche/quiche/http2/decoder/decode_buffer_test.cc +6 -11
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.cc +0 -5
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.h +0 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender.cc +0 -10
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender.h +0 -1
- package/third_party/quiche/quiche/quic/core/congestion_control/send_algorithm_interface.h +0 -6
- package/third_party/quiche/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.cc +0 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.h +0 -1
- package/third_party/quiche/quiche/quic/core/crypto/transport_parameters_test.cc +1 -3
- package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +19 -9
- package/third_party/quiche/quiche/quic/core/http/http_decoder_test.cc +6 -3
- package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.cc +4 -16
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.h +6 -6
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session_test.cc +25 -15
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +6 -5
- package/third_party/quiche/quiche/quic/core/http/web_transport_http3.cc +1 -2
- package/third_party/quiche/quiche/quic/core/quic_bandwidth_test.cc +12 -12
- package/third_party/quiche/quiche/quic/core/quic_connection.cc +5 -95
- package/third_party/quiche/quiche/quic/core/quic_connection.h +0 -35
- package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +80 -196
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +29 -5
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream_test.cc +46 -0
- package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +17 -14
- package/third_party/quiche/quiche/quic/core/quic_flags_list.h +54 -54
- package/third_party/quiche/quiche/quic/core/quic_flow_controller_test.cc +8 -5
- package/third_party/quiche/quiche/quic/core/quic_framer_test.cc +8 -5
- package/third_party/quiche/quiche/quic/core/quic_idle_network_detector.cc +1 -0
- package/third_party/quiche/quiche/quic/core/quic_idle_network_detector_test.cc +29 -0
- package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +1 -5
- package/third_party/quiche/quiche/quic/core/quic_packet_creator_test.cc +18 -11
- package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.cc +9 -28
- package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.h +0 -13
- package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager_test.cc +1 -49
- package/third_party/quiche/quiche/quic/core/quic_session.cc +0 -8
- package/third_party/quiche/quiche/quic/core/quic_session.h +0 -1
- package/third_party/quiche/quiche/quic/core/quic_stream.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_stream_sequencer.cc +5 -0
- package/third_party/quiche/quiche/quic/core/quic_stream_sequencer.h +4 -0
- package/third_party/quiche/quiche/quic/core/quic_stream_sequencer_test.cc +12 -5
- package/third_party/quiche/quiche/quic/core/quic_stream_test.cc +27 -12
- package/third_party/quiche/quiche/quic/core/quic_types.cc +0 -1
- package/third_party/quiche/quiche/quic/core/quic_types.h +0 -3
- package/third_party/quiche/quiche/quic/core/quic_utils.cc +0 -3
- package/third_party/quiche/quiche/quic/core/quic_utils_test.cc +0 -2
- package/third_party/quiche/quiche/quic/core/tls_client_handshaker_test.cc +16 -12
- package/third_party/quiche/quiche/quic/core/tls_handshaker.cc +18 -3
- package/third_party/quiche/quiche/quic/qbone/platform/internet_checksum.cc +7 -2
- package/third_party/quiche/quiche/quic/test_tools/crypto_test_utils.cc +20 -12
- package/third_party/quiche/quiche/quic/test_tools/crypto_test_utils.h +10 -5
- package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +0 -2
- package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint.cc +0 -8
- package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint.h +0 -1
- package/third_party/quiche/quiche/quic/tools/quic_simple_server_stream_test.cc +2 -1
- package/platform/net/quiche/common/platform/impl/quic_flags_list_add.h +0 -379
- package/platform/net/quiche/common/platform/impl/quiche_flags_impl.cc +0 -21
- package/third_party/boringssl/src/crypto/asn1/charmap.h +0 -15
- package/third_party/boringssl/src/crypto/asn1/charmap.pl +0 -135
|
@@ -480,9 +480,13 @@ TEST_P(QuicStreamTest, WriteOrBufferDataReachStreamLimit) {
|
|
|
480
480
|
.WillOnce(Invoke(session_.get(), &MockQuicSession::ConsumeData));
|
|
481
481
|
stream_->WriteOrBufferData(data, false, nullptr);
|
|
482
482
|
EXPECT_TRUE(session_->HasUnackedStreamData());
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
483
|
+
EXPECT_QUIC_BUG(
|
|
484
|
+
{
|
|
485
|
+
EXPECT_CALL(*connection_,
|
|
486
|
+
CloseConnection(QUIC_STREAM_LENGTH_OVERFLOW, _, _));
|
|
487
|
+
stream_->WriteOrBufferData("a", false, nullptr);
|
|
488
|
+
},
|
|
489
|
+
"Write too many data via stream");
|
|
486
490
|
}
|
|
487
491
|
|
|
488
492
|
TEST_P(QuicStreamTest, ConnectionCloseAfterStreamClose) {
|
|
@@ -789,11 +793,14 @@ TEST_P(QuicStreamTest, OnStreamFrameUpperLimit) {
|
|
|
789
793
|
|
|
790
794
|
TEST_P(QuicStreamTest, StreamTooLong) {
|
|
791
795
|
Initialize();
|
|
792
|
-
EXPECT_CALL(*connection_, CloseConnection(QUIC_STREAM_LENGTH_OVERFLOW, _, _))
|
|
793
|
-
.Times(1);
|
|
794
796
|
QuicStreamFrame stream_frame(stream_->id(), false, kMaxStreamLength, ".");
|
|
795
797
|
EXPECT_QUIC_PEER_BUG(
|
|
796
|
-
|
|
798
|
+
{
|
|
799
|
+
EXPECT_CALL(*connection_,
|
|
800
|
+
CloseConnection(QUIC_STREAM_LENGTH_OVERFLOW, _, _))
|
|
801
|
+
.Times(1);
|
|
802
|
+
stream_->OnStreamFrame(stream_frame);
|
|
803
|
+
},
|
|
797
804
|
absl::StrCat("Receive stream frame on stream ", stream_->id(),
|
|
798
805
|
" reaches max stream length"));
|
|
799
806
|
}
|
|
@@ -1237,9 +1244,13 @@ TEST_P(QuicStreamTest, WritevDataReachStreamLimit) {
|
|
|
1237
1244
|
quiche::QuicheMemSliceStorage storage2(
|
|
1238
1245
|
&iov2, 1,
|
|
1239
1246
|
session_->connection()->helper()->GetStreamSendBufferAllocator(), 1024);
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1247
|
+
EXPECT_QUIC_BUG(
|
|
1248
|
+
{
|
|
1249
|
+
EXPECT_CALL(*connection_,
|
|
1250
|
+
CloseConnection(QUIC_STREAM_LENGTH_OVERFLOW, _, _));
|
|
1251
|
+
stream_->WriteMemSlices(storage2.ToSpan(), false);
|
|
1252
|
+
},
|
|
1253
|
+
"Write too many data via stream");
|
|
1243
1254
|
}
|
|
1244
1255
|
|
|
1245
1256
|
TEST_P(QuicStreamTest, WriteMemSlices) {
|
|
@@ -1328,9 +1339,13 @@ TEST_P(QuicStreamTest, WriteMemSlicesReachStreamLimit) {
|
|
|
1328
1339
|
EXPECT_EQ(5u, consumed.bytes_consumed);
|
|
1329
1340
|
|
|
1330
1341
|
quiche::QuicheMemSlice slice2 = MemSliceFromString("6");
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1342
|
+
EXPECT_QUIC_BUG(
|
|
1343
|
+
{
|
|
1344
|
+
EXPECT_CALL(*connection_,
|
|
1345
|
+
CloseConnection(QUIC_STREAM_LENGTH_OVERFLOW, _, _));
|
|
1346
|
+
stream_->WriteMemSlice(std::move(slice2), false);
|
|
1347
|
+
},
|
|
1348
|
+
"Write too many data via stream");
|
|
1334
1349
|
}
|
|
1335
1350
|
|
|
1336
1351
|
TEST_P(QuicStreamTest, StreamDataGetAckedMultipleTimes) {
|
|
@@ -215,7 +215,6 @@ std::string TransmissionTypeToString(TransmissionType transmission_type) {
|
|
|
215
215
|
RETURN_STRING_LITERAL(ALL_ZERO_RTT_RETRANSMISSION);
|
|
216
216
|
RETURN_STRING_LITERAL(LOSS_RETRANSMISSION);
|
|
217
217
|
RETURN_STRING_LITERAL(PTO_RETRANSMISSION);
|
|
218
|
-
RETURN_STRING_LITERAL(PROBING_RETRANSMISSION);
|
|
219
218
|
RETURN_STRING_LITERAL(PATH_RETRANSMISSION);
|
|
220
219
|
RETURN_STRING_LITERAL(ALL_INITIAL_RETRANSMISSION);
|
|
221
220
|
default:
|
|
@@ -181,7 +181,6 @@ enum TransmissionType : int8_t {
|
|
|
181
181
|
// key.
|
|
182
182
|
LOSS_RETRANSMISSION, // Retransmits due to loss detection.
|
|
183
183
|
PTO_RETRANSMISSION, // Retransmission due to probe timeout.
|
|
184
|
-
PROBING_RETRANSMISSION, // Retransmission in order to probe bandwidth.
|
|
185
184
|
PATH_RETRANSMISSION, // Retransmission proactively due to underlying
|
|
186
185
|
// network change.
|
|
187
186
|
ALL_INITIAL_RETRANSMISSION, // Retransmit all packets encrypted with INITIAL
|
|
@@ -545,8 +544,6 @@ enum SentPacketState : uint8_t {
|
|
|
545
544
|
LOST,
|
|
546
545
|
// This packet has been retransmitted when PTO fires.
|
|
547
546
|
PTO_RETRANSMITTED,
|
|
548
|
-
// This packet has been retransmitted for probing purpose.
|
|
549
|
-
PROBE_RETRANSMITTED,
|
|
550
547
|
// This packet is sent on a different path or is a PING only packet.
|
|
551
548
|
// Do not update RTT stats and congestion control if the packet is the
|
|
552
549
|
// largest_acked of an incoming ACK.
|
|
@@ -171,7 +171,6 @@ const char* QuicUtils::SentPacketStateToString(SentPacketState state) {
|
|
|
171
171
|
RETURN_STRING_LITERAL(HANDSHAKE_RETRANSMITTED);
|
|
172
172
|
RETURN_STRING_LITERAL(LOST);
|
|
173
173
|
RETURN_STRING_LITERAL(PTO_RETRANSMITTED);
|
|
174
|
-
RETURN_STRING_LITERAL(PROBE_RETRANSMITTED);
|
|
175
174
|
RETURN_STRING_LITERAL(NOT_CONTRIBUTING_RTT);
|
|
176
175
|
}
|
|
177
176
|
return "INVALID_SENT_PACKET_STATE";
|
|
@@ -289,8 +288,6 @@ SentPacketState QuicUtils::RetransmissionTypeToPacketState(
|
|
|
289
288
|
return LOST;
|
|
290
289
|
case PTO_RETRANSMISSION:
|
|
291
290
|
return PTO_RETRANSMITTED;
|
|
292
|
-
case PROBING_RETRANSMISSION:
|
|
293
|
-
return PROBE_RETRANSMITTED;
|
|
294
291
|
case PATH_RETRANSMISSION:
|
|
295
292
|
return NOT_CONTRIBUTING_RTT;
|
|
296
293
|
case ALL_INITIAL_RETRANSMISSION:
|
|
@@ -131,8 +131,6 @@ TEST_F(QuicUtilsTest, RetransmissionTypeToPacketState) {
|
|
|
131
131
|
EXPECT_EQ(UNACKABLE, state);
|
|
132
132
|
} else if (i == PTO_RETRANSMISSION) {
|
|
133
133
|
EXPECT_EQ(PTO_RETRANSMITTED, state);
|
|
134
|
-
} else if (i == PROBING_RETRANSMISSION) {
|
|
135
|
-
EXPECT_EQ(PROBE_RETRANSMITTED, state);
|
|
136
134
|
} else if (i == PATH_RETRANSMISSION) {
|
|
137
135
|
EXPECT_EQ(NOT_CONTRIBUTING_RTT, state);
|
|
138
136
|
} else if (i == ALL_INITIAL_RETRANSMISSION) {
|
|
@@ -577,18 +577,22 @@ TEST_P(TlsClientHandshakerTest, ClientSendsNoSNI) {
|
|
|
577
577
|
|
|
578
578
|
TEST_P(TlsClientHandshakerTest, ClientSendingTooManyALPNs) {
|
|
579
579
|
std::string long_alpn(250, 'A');
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
580
|
+
EXPECT_QUIC_BUG(
|
|
581
|
+
{
|
|
582
|
+
EXPECT_CALL(*session_, GetAlpnsToOffer())
|
|
583
|
+
.WillOnce(testing::Return(std::vector<std::string>({
|
|
584
|
+
long_alpn + "1",
|
|
585
|
+
long_alpn + "2",
|
|
586
|
+
long_alpn + "3",
|
|
587
|
+
long_alpn + "4",
|
|
588
|
+
long_alpn + "5",
|
|
589
|
+
long_alpn + "6",
|
|
590
|
+
long_alpn + "7",
|
|
591
|
+
long_alpn + "8",
|
|
592
|
+
})));
|
|
593
|
+
stream()->CryptoConnect();
|
|
594
|
+
},
|
|
595
|
+
"Failed to set ALPN");
|
|
592
596
|
}
|
|
593
597
|
|
|
594
598
|
TEST_P(TlsClientHandshakerTest, ServerRequiresCustomALPN) {
|
|
@@ -85,7 +85,7 @@ bool TlsHandshaker::ProcessInput(absl::string_view input,
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
void TlsHandshaker::AdvanceHandshake() {
|
|
88
|
-
if (
|
|
88
|
+
if (is_connection_closed()) {
|
|
89
89
|
return;
|
|
90
90
|
}
|
|
91
91
|
if (GetHandshakeState() >= HANDSHAKE_COMPLETE) {
|
|
@@ -101,6 +101,13 @@ void TlsHandshaker::AdvanceHandshake() {
|
|
|
101
101
|
QUIC_VLOG(1) << ENDPOINT << "Continuing handshake";
|
|
102
102
|
int rv = SSL_do_handshake(ssl());
|
|
103
103
|
|
|
104
|
+
if (GetQuicReloadableFlag(quic_tls_handshaker_check_connection_closed) &&
|
|
105
|
+
is_connection_closed()) {
|
|
106
|
+
QUIC_RELOADABLE_FLAG_COUNT_N(quic_tls_handshaker_check_connection_closed, 1,
|
|
107
|
+
2);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
|
|
104
111
|
// If SSL_do_handshake return success(1) and we are in early data, it is
|
|
105
112
|
// possible that we have provided ServerHello to BoringSSL but it hasn't been
|
|
106
113
|
// processed. Retry SSL_do_handshake once will advance the handshake more in
|
|
@@ -109,6 +116,14 @@ void TlsHandshaker::AdvanceHandshake() {
|
|
|
109
116
|
if (rv == 1 && SSL_in_early_data(ssl())) {
|
|
110
117
|
OnEnterEarlyData();
|
|
111
118
|
rv = SSL_do_handshake(ssl());
|
|
119
|
+
|
|
120
|
+
if (GetQuicReloadableFlag(quic_tls_handshaker_check_connection_closed) &&
|
|
121
|
+
is_connection_closed()) {
|
|
122
|
+
QUIC_RELOADABLE_FLAG_COUNT_N(quic_tls_handshaker_check_connection_closed,
|
|
123
|
+
2, 2);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
|
|
112
127
|
QUIC_VLOG(1) << ENDPOINT
|
|
113
128
|
<< "SSL_do_handshake returned when entering early data. After "
|
|
114
129
|
<< "retry, rv=" << rv
|
|
@@ -120,7 +135,7 @@ void TlsHandshaker::AdvanceHandshake() {
|
|
|
120
135
|
// SSL_in_early_data should be false.
|
|
121
136
|
//
|
|
122
137
|
// In either case, it should not both return 1 and stay in early data.
|
|
123
|
-
if (rv == 1 && SSL_in_early_data(ssl()) && !
|
|
138
|
+
if (rv == 1 && SSL_in_early_data(ssl()) && !is_connection_closed()) {
|
|
124
139
|
QUIC_BUG(quic_handshaker_stay_in_early_data)
|
|
125
140
|
<< "The original and the retry of SSL_do_handshake both returned "
|
|
126
141
|
"success and in early data";
|
|
@@ -139,7 +154,7 @@ void TlsHandshaker::AdvanceHandshake() {
|
|
|
139
154
|
return;
|
|
140
155
|
}
|
|
141
156
|
if (ShouldCloseConnectionOnUnexpectedError(ssl_error) &&
|
|
142
|
-
!
|
|
157
|
+
!is_connection_closed()) {
|
|
143
158
|
QUIC_VLOG(1) << "SSL_do_handshake failed; SSL_get_error returns "
|
|
144
159
|
<< ssl_error;
|
|
145
160
|
ERR_print_errors_fp(stderr);
|
|
@@ -4,15 +4,20 @@
|
|
|
4
4
|
|
|
5
5
|
#include "quiche/quic/qbone/platform/internet_checksum.h"
|
|
6
6
|
|
|
7
|
+
#include <stdint.h>
|
|
8
|
+
#include <string.h>
|
|
9
|
+
|
|
7
10
|
namespace quic {
|
|
8
11
|
|
|
9
12
|
void InternetChecksum::Update(const char* data, size_t size) {
|
|
10
13
|
const char* current;
|
|
11
14
|
for (current = data; current + 1 < data + size; current += 2) {
|
|
12
|
-
|
|
15
|
+
uint16_t v;
|
|
16
|
+
memcpy(&v, current, sizeof(v));
|
|
17
|
+
accumulator_ += v;
|
|
13
18
|
}
|
|
14
19
|
if (current < data + size) {
|
|
15
|
-
accumulator_ += *reinterpret_cast<const
|
|
20
|
+
accumulator_ += *reinterpret_cast<const unsigned char*>(current);
|
|
16
21
|
}
|
|
17
22
|
}
|
|
18
23
|
|
|
@@ -384,7 +384,7 @@ void CommunicateHandshakeMessages(PacketSavingConnection* client_conn,
|
|
|
384
384
|
<< client_conn->encrypted_packets_.size() - client_i
|
|
385
385
|
<< " packets client->server";
|
|
386
386
|
MovePackets(client_conn, &client_i, server, server_conn,
|
|
387
|
-
Perspective::IS_SERVER);
|
|
387
|
+
Perspective::IS_SERVER, /*process_stream_data=*/false);
|
|
388
388
|
|
|
389
389
|
if (client->one_rtt_keys_available() && server->one_rtt_keys_available() &&
|
|
390
390
|
server_conn->encrypted_packets_.size() == server_i) {
|
|
@@ -395,7 +395,7 @@ void CommunicateHandshakeMessages(PacketSavingConnection* client_conn,
|
|
|
395
395
|
<< server_conn->encrypted_packets_.size() - server_i
|
|
396
396
|
<< " packets server->client";
|
|
397
397
|
MovePackets(server_conn, &server_i, client, client_conn,
|
|
398
|
-
Perspective::IS_CLIENT);
|
|
398
|
+
Perspective::IS_CLIENT, /*process_stream_data=*/false);
|
|
399
399
|
}
|
|
400
400
|
}
|
|
401
401
|
|
|
@@ -404,7 +404,8 @@ bool CommunicateHandshakeMessagesUntil(PacketSavingConnection* client_conn,
|
|
|
404
404
|
std::function<bool()> client_condition,
|
|
405
405
|
PacketSavingConnection* server_conn,
|
|
406
406
|
QuicCryptoStream* server,
|
|
407
|
-
std::function<bool()> server_condition
|
|
407
|
+
std::function<bool()> server_condition,
|
|
408
|
+
bool process_stream_data) {
|
|
408
409
|
size_t client_next_packet_to_deliver =
|
|
409
410
|
client_conn->number_of_packets_delivered_;
|
|
410
411
|
size_t server_next_packet_to_deliver =
|
|
@@ -421,7 +422,7 @@ bool CommunicateHandshakeMessagesUntil(PacketSavingConnection* client_conn,
|
|
|
421
422
|
client_next_packet_to_deliver
|
|
422
423
|
<< " packets client->server";
|
|
423
424
|
MovePackets(client_conn, &client_next_packet_to_deliver, server,
|
|
424
|
-
server_conn, Perspective::IS_SERVER);
|
|
425
|
+
server_conn, Perspective::IS_SERVER, process_stream_data);
|
|
425
426
|
}
|
|
426
427
|
if (!client_condition()) {
|
|
427
428
|
QUIC_LOG(INFO) << "Processing "
|
|
@@ -429,7 +430,7 @@ bool CommunicateHandshakeMessagesUntil(PacketSavingConnection* client_conn,
|
|
|
429
430
|
server_next_packet_to_deliver
|
|
430
431
|
<< " packets server->client";
|
|
431
432
|
MovePackets(server_conn, &server_next_packet_to_deliver, client,
|
|
432
|
-
client_conn, Perspective::IS_CLIENT);
|
|
433
|
+
client_conn, Perspective::IS_CLIENT, process_stream_data);
|
|
433
434
|
}
|
|
434
435
|
}
|
|
435
436
|
client_conn->number_of_packets_delivered_ = client_next_packet_to_deliver;
|
|
@@ -457,7 +458,7 @@ std::pair<size_t, size_t> AdvanceHandshake(PacketSavingConnection* client_conn,
|
|
|
457
458
|
<< client_conn->encrypted_packets_.size() - client_i
|
|
458
459
|
<< " packets client->server";
|
|
459
460
|
MovePackets(client_conn, &client_i, server, server_conn,
|
|
460
|
-
Perspective::IS_SERVER);
|
|
461
|
+
Perspective::IS_SERVER, /*process_stream_data=*/false);
|
|
461
462
|
}
|
|
462
463
|
|
|
463
464
|
if (server_conn->encrypted_packets_.size() != server_i) {
|
|
@@ -465,7 +466,7 @@ std::pair<size_t, size_t> AdvanceHandshake(PacketSavingConnection* client_conn,
|
|
|
465
466
|
<< server_conn->encrypted_packets_.size() - server_i
|
|
466
467
|
<< " packets server->client";
|
|
467
468
|
MovePackets(server_conn, &server_i, client, client_conn,
|
|
468
|
-
Perspective::IS_CLIENT);
|
|
469
|
+
Perspective::IS_CLIENT, /*process_stream_data=*/false);
|
|
469
470
|
}
|
|
470
471
|
|
|
471
472
|
return std::make_pair(client_i, server_i);
|
|
@@ -709,7 +710,7 @@ CryptoHandshakeMessage CreateCHLO(
|
|
|
709
710
|
void MovePackets(PacketSavingConnection* source_conn,
|
|
710
711
|
size_t* inout_packet_index, QuicCryptoStream* dest_stream,
|
|
711
712
|
PacketSavingConnection* dest_conn,
|
|
712
|
-
Perspective dest_perspective) {
|
|
713
|
+
Perspective dest_perspective, bool process_stream_data) {
|
|
713
714
|
SimpleQuicFramer framer(source_conn->supported_versions(), dest_perspective);
|
|
714
715
|
QuicFramerPeer::SetLastSerializedServerConnectionId(framer.framer(),
|
|
715
716
|
TestConnectionId());
|
|
@@ -779,10 +780,17 @@ void MovePackets(PacketSavingConnection* source_conn,
|
|
|
779
780
|
QuicConnectionPeer::SetCurrentPacket(
|
|
780
781
|
dest_conn, source_conn->encrypted_packets_[index]->AsStringPiece());
|
|
781
782
|
for (const auto& stream_frame : framer.stream_frames()) {
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
783
|
+
if (process_stream_data &&
|
|
784
|
+
dest_stream->handshake_protocol() == PROTOCOL_TLS1_3) {
|
|
785
|
+
// Deliver STREAM_FRAME such that application state is available and can
|
|
786
|
+
// be stored along with resumption ticket in session cache,
|
|
787
|
+
dest_conn->OnStreamFrame(*stream_frame);
|
|
788
|
+
} else {
|
|
789
|
+
// Ignore stream frames that are sent on other streams in the crypto
|
|
790
|
+
// event.
|
|
791
|
+
if (stream_frame->stream_id == dest_stream->id()) {
|
|
792
|
+
dest_stream->OnStreamFrame(*stream_frame);
|
|
793
|
+
}
|
|
786
794
|
}
|
|
787
795
|
}
|
|
788
796
|
for (const auto& crypto_frame : framer.crypto_frames()) {
|
|
@@ -109,15 +109,18 @@ void CommunicateHandshakeMessages(PacketSavingConnection* client_conn,
|
|
|
109
109
|
// CommunicateHandshakeMessagesUntil:
|
|
110
110
|
// 1) Moves messages from |client| to |server| until |server_condition| is met.
|
|
111
111
|
// 2) Moves messages from |server| to |client| until |client_condition| is met.
|
|
112
|
-
// 3)
|
|
113
|
-
//
|
|
112
|
+
// 3) For IETF QUIC, if `process_stream_data` is true, STREAM_FRAME within the
|
|
113
|
+
// packet containing crypto messages is also processed.
|
|
114
|
+
// 4) Returns true if both conditions are met.
|
|
115
|
+
// 5) Returns false if either connection is closed or there is no more packet to
|
|
114
116
|
// deliver before both conditions are met.
|
|
115
117
|
bool CommunicateHandshakeMessagesUntil(PacketSavingConnection* client_conn,
|
|
116
118
|
QuicCryptoStream* client,
|
|
117
119
|
std::function<bool()> client_condition,
|
|
118
120
|
PacketSavingConnection* server_conn,
|
|
119
121
|
QuicCryptoStream* server,
|
|
120
|
-
std::function<bool()> server_condition
|
|
122
|
+
std::function<bool()> server_condition,
|
|
123
|
+
bool process_stream_data);
|
|
121
124
|
|
|
122
125
|
// AdvanceHandshake attempts to moves messages from |client| to |server| and
|
|
123
126
|
// |server| to |client|. Returns the number of messages moved.
|
|
@@ -176,11 +179,13 @@ CryptoHandshakeMessage CreateCHLO(
|
|
|
176
179
|
// MovePackets parses crypto handshake messages from packet number
|
|
177
180
|
// |*inout_packet_index| through to the last packet (or until a packet fails
|
|
178
181
|
// to decrypt) and has |dest_stream| process them. |*inout_packet_index| is
|
|
179
|
-
// updated with an index one greater than the last packet processed.
|
|
182
|
+
// updated with an index one greater than the last packet processed. For IETF
|
|
183
|
+
// QUIC, if `process_stream_data` is true, STREAM_FRAME within the packet
|
|
184
|
+
// containing crypto messages is also processed.
|
|
180
185
|
void MovePackets(PacketSavingConnection* source_conn,
|
|
181
186
|
size_t* inout_packet_index, QuicCryptoStream* dest_stream,
|
|
182
187
|
PacketSavingConnection* dest_conn,
|
|
183
|
-
Perspective dest_perspective);
|
|
188
|
+
Perspective dest_perspective, bool process_stream_data);
|
|
184
189
|
|
|
185
190
|
// Return an inchoate CHLO with some basic tag value pairs.
|
|
186
191
|
CryptoHandshakeMessage GenerateDefaultInchoateCHLO(
|
|
@@ -453,7 +453,6 @@ class MockQuicConnectionVisitor : public QuicConnectionVisitorInterface {
|
|
|
453
453
|
(override));
|
|
454
454
|
MOCK_METHOD(void, OnWriteBlocked, (), (override));
|
|
455
455
|
MOCK_METHOD(void, OnCanWrite, (), (override));
|
|
456
|
-
MOCK_METHOD(bool, SendProbingData, (), (override));
|
|
457
456
|
MOCK_METHOD(void, OnCongestionWindowChange, (QuicTime now), (override));
|
|
458
457
|
MOCK_METHOD(void, OnConnectionMigration, (AddressChangeType type),
|
|
459
458
|
(override));
|
|
@@ -1209,7 +1208,6 @@ class MockSendAlgorithm : public SendAlgorithmInterface {
|
|
|
1209
1208
|
MOCK_METHOD(std::string, GetDebugState, (), (const, override));
|
|
1210
1209
|
MOCK_METHOD(bool, InSlowStart, (), (const, override));
|
|
1211
1210
|
MOCK_METHOD(bool, InRecovery, (), (const, override));
|
|
1212
|
-
MOCK_METHOD(bool, ShouldSendProbingPacket, (), (const, override));
|
|
1213
1211
|
MOCK_METHOD(QuicByteCount, GetSlowStartThreshold, (), (const, override));
|
|
1214
1212
|
MOCK_METHOD(CongestionControlType, GetCongestionControlType, (),
|
|
1215
1213
|
(const, override));
|
|
@@ -151,14 +151,6 @@ void QuicEndpoint::OnCanWrite() {
|
|
|
151
151
|
WriteStreamData();
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
bool QuicEndpoint::SendProbingData() {
|
|
155
|
-
if (connection()->sent_packet_manager().MaybeRetransmitOldestPacket(
|
|
156
|
-
PROBING_RETRANSMISSION)) {
|
|
157
|
-
return true;
|
|
158
|
-
}
|
|
159
|
-
return false;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
154
|
bool QuicEndpoint::WillingAndAbleToWrite() const {
|
|
163
155
|
if (notifier_ != nullptr) {
|
|
164
156
|
return notifier_->WillingToWrite();
|
|
@@ -46,7 +46,6 @@ class QuicEndpoint : public QuicEndpointBase,
|
|
|
46
46
|
void OnStreamFrame(const QuicStreamFrame& frame) override;
|
|
47
47
|
void OnCryptoFrame(const QuicCryptoFrame& frame) override;
|
|
48
48
|
void OnCanWrite() override;
|
|
49
|
-
bool SendProbingData() override;
|
|
50
49
|
bool WillingAndAbleToWrite() const override;
|
|
51
50
|
bool ShouldKeepConnectionAlive() const override;
|
|
52
51
|
|
|
@@ -65,7 +65,8 @@ class TestStream : public QuicSimpleServerStream {
|
|
|
65
65
|
|
|
66
66
|
MOCK_METHOD(void, WriteHeadersMock, (bool fin), ());
|
|
67
67
|
MOCK_METHOD(void, WriteEarlyHintsHeadersMock, (bool fin), ());
|
|
68
|
-
MOCK_METHOD(void, WriteOrBufferBody, (absl::string_view data, bool fin),
|
|
68
|
+
MOCK_METHOD(void, WriteOrBufferBody, (absl::string_view data, bool fin),
|
|
69
|
+
(override));
|
|
69
70
|
|
|
70
71
|
size_t WriteHeaders(
|
|
71
72
|
spdy::Http2HeaderBlock header_block, bool fin,
|