@fails-components/webtransport 0.0.1-rc.0 → 0.0.1-rc.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/.github/workflows/npm-publish-packages.yml +0 -0
- package/CMakeLists.txt +2 -0
- package/package.json +1 -1
- package/readme.md +0 -0
- package/src/http3serversession.h +1 -1
- package/src/webtransport.js +4 -2
- package/third_party/boringssl/src/CMakeLists.txt +9 -12
- package/third_party/boringssl/src/crypto/CMakeLists.txt +2 -3
- package/third_party/boringssl/src/crypto/asn1/time_support.c +206 -206
- package/third_party/boringssl/src/crypto/bio/socket_helper.c +124 -122
- package/third_party/boringssl/src/crypto/evp/digestsign.c +268 -231
- package/third_party/boringssl/src/crypto/evp/p_ec.c +286 -286
- package/third_party/boringssl/src/crypto/fipsmodule/aes/key_wrap.c +246 -236
- package/third_party/boringssl/src/crypto/fipsmodule/aes/mode_wrappers.c +124 -122
- package/third_party/boringssl/src/crypto/fipsmodule/bcm.c +3 -0
- package/third_party/boringssl/src/crypto/fipsmodule/bn/bytes.c +246 -230
- package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +734 -715
- package/third_party/boringssl/src/crypto/fipsmodule/bn/random.c +349 -341
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/cipher.c +670 -648
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +1504 -1472
- package/third_party/boringssl/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +435 -446
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_3des_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes128_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes192_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes256_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +318 -278
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cmac_test.cc +268 -267
- package/third_party/boringssl/src/crypto/fipsmodule/dh/dh.c +5 -1
- package/third_party/boringssl/src/crypto/fipsmodule/ec/ec.c +11 -17
- package/third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c +15 -4
- package/third_party/boringssl/src/crypto/fipsmodule/ec/internal.h +2 -6
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p224-64.c +1164 -1180
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz.c +3 -3
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz_test.cc +2 -2
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p256.c +44 -33
- package/third_party/boringssl/src/crypto/fipsmodule/ec/scalar.c +169 -175
- package/third_party/boringssl/src/crypto/fipsmodule/ec/simple.c +352 -357
- package/third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c +4 -0
- package/third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa.c +14 -9
- package/third_party/boringssl/src/crypto/fipsmodule/hmac/hmac.c +256 -235
- package/third_party/boringssl/src/crypto/fipsmodule/rand/ctrdrbg.c +204 -202
- package/third_party/boringssl/src/crypto/fipsmodule/rsa/padding.c +702 -695
- package/third_party/boringssl/src/crypto/fipsmodule/rsa/rsa_impl.c +7 -2
- package/third_party/boringssl/src/crypto/fipsmodule/self_check/self_check.c +7 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator.c +333 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator_test.cc +2410 -0
- package/third_party/boringssl/src/crypto/fipsmodule/sha/sha1.c +359 -357
- package/third_party/boringssl/src/crypto/fipsmodule/sha/sha256.c +325 -321
- package/third_party/boringssl/src/crypto/fipsmodule/sha/sha512.c +510 -508
- package/third_party/boringssl/src/crypto/fipsmodule/tls/kdf.c +177 -165
- package/third_party/boringssl/src/crypto/internal.h +13 -0
- package/third_party/boringssl/src/crypto/trust_token/trust_token_test.cc +884 -884
- package/third_party/boringssl/src/crypto/x509/internal.h +0 -2
- package/third_party/boringssl/src/crypto/x509/t_crl.c +148 -148
- package/third_party/boringssl/src/crypto/x509/t_req.c +249 -250
- package/third_party/boringssl/src/crypto/x509/t_x509.c +2 -3
- package/third_party/boringssl/src/crypto/x509/x509_req.c +262 -304
- package/third_party/boringssl/src/crypto/x509/x509_set.c +250 -240
- package/third_party/boringssl/src/crypto/x509/x509_test.cc +466 -4
- package/third_party/boringssl/src/crypto/x509/x509cset.c +292 -279
- package/third_party/boringssl/src/crypto/x509/x509rset.c +89 -86
- package/third_party/boringssl/src/crypto/x509/x_crl.c +37 -125
- package/third_party/boringssl/src/crypto/x509/x_req.c +114 -109
- package/third_party/boringssl/src/crypto/x509/x_x509.c +394 -394
- package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +11 -16
- package/third_party/boringssl/src/crypto/x509v3/v3_alt.c +644 -642
- package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +130 -133
- package/third_party/boringssl/src/crypto/x509v3/v3_bitst.c +149 -144
- package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +496 -500
- package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +105 -106
- package/third_party/boringssl/src/crypto/x509v3/v3_ia5.c +126 -121
- package/third_party/boringssl/src/crypto/x509v3/v3_info.c +206 -218
- package/third_party/boringssl/src/crypto/x509v3/v3_int.c +97 -91
- package/third_party/boringssl/src/crypto/x509v3/v3_pci.c +290 -289
- package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +161 -156
- package/third_party/boringssl/src/crypto/x509v3/v3_utl.c +5 -3
- package/third_party/boringssl/src/include/openssl/aead.h +480 -480
- package/third_party/boringssl/src/include/openssl/asn1.h +2 -0
- package/third_party/boringssl/src/include/openssl/base.h +1 -1
- package/third_party/boringssl/src/include/openssl/service_indicator.h +96 -0
- package/third_party/boringssl/src/include/openssl/ssl.h +7 -0
- package/third_party/boringssl/src/include/openssl/x509.h +11 -33
- package/third_party/boringssl/src/include/openssl/x509v3.h +990 -1018
- package/third_party/boringssl/src/sources.cmake +4 -4
- package/third_party/boringssl/src/ssl/internal.h +10 -0
- package/third_party/boringssl/src/ssl/ssl_lib.cc +3081 -3072
- package/third_party/boringssl/src/ssl/ssl_test.cc +46 -0
- package/third_party/boringssl/src/ssl/tls13_server.cc +4 -6
- package/third_party/boringssl/src/util/bot/DEPS +14 -27
- package/third_party/boringssl/src/util/bot/UPDATING +3 -9
- package/third_party/boringssl/src/util/bot/update_clang.py +172 -172
- package/third_party/boringssl/src/util/bot/vs_toolchain.py +3 -3
- package/third_party/quiche/.bazelrc +8 -0
- package/third_party/quiche/BUILD.bazel +7 -0
- package/third_party/quiche/WHITESPACE +3 -1
- package/third_party/quiche/WORKSPACE.bazel +87 -0
- package/third_party/quiche/build/BUILD.bazel +7 -0
- package/third_party/quiche/build/source_list.bzl +1511 -0
- package/third_party/quiche/build/source_list.gni +1511 -0
- package/third_party/quiche/build/source_list.json +1511 -0
- package/third_party/quiche/build/test.bzl +26 -0
- package/third_party/quiche/build/zlib.BUILD +25 -0
- package/third_party/quiche/quiche/BUILD.bazel +270 -0
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_enums.cc +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_enums.h +7 -7
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame.cc +39 -18
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame.h +11 -10
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame_test.cc +67 -63
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers.cc +13 -12
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers.h +16 -8
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers_test.cc +9 -9
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_visitor_interface.h +4 -4
- package/third_party/quiche/quiche/{common/balsa → balsa}/framer_interface.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_api.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties_test.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/http_validation_policy.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/http_validation_policy.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/noop_balsa_visitor.h +4 -4
- package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer.cc +22 -29
- package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer.h +18 -16
- package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer_test.cc +79 -32
- package/third_party/quiche/quiche/{common/balsa → balsa}/standard_header_map.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/standard_header_map.h +3 -3
- package/third_party/quiche/quiche/common/platform/api/quiche_command_line_flags.h +6 -1
- package/third_party/quiche/quiche/common/platform/api/quiche_flags.h +8 -0
- package/third_party/quiche/quiche/common/platform/api/quiche_logging.h +0 -3
- package/third_party/quiche/quiche/common/platform/api/quiche_lower_case_string_test.cc +29 -0
- package/third_party/quiche/quiche/common/platform/api/quiche_test.h +5 -7
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quic_flags_impl.h +1 -1
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_bug_tracker_impl.h +3 -2
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_command_line_flags_impl.cc +41 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_command_line_flags_impl.h +33 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_expect_bug_impl.h +15 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_logging_impl.h +84 -50
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_lower_case_string_impl.h +25 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_stack_trace_impl.cc +1 -1
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc +25 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.h +56 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_output_impl.h +27 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_thread_impl.h +26 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_url_utils_impl.cc +1 -0
- package/third_party/quiche/quiche/common/quiche_buffer_allocator_test.cc +1 -1
- package/third_party/quiche/quiche/common/quiche_mem_slice_storage.h +2 -3
- package/third_party/quiche/quiche/common/structured_headers.cc +14 -12
- package/third_party/quiche/quiche/http2/adapter/event_forwarder.cc +7 -5
- package/third_party/quiche/quiche/http2/adapter/event_forwarder.h +4 -2
- package/third_party/quiche/quiche/http2/adapter/event_forwarder_test.cc +14 -9
- package/third_party/quiche/quiche/http2/adapter/header_validator.cc +43 -19
- package/third_party/quiche/quiche/http2/adapter/header_validator.h +11 -40
- package/third_party/quiche/quiche/http2/adapter/header_validator_base.h +69 -0
- package/third_party/quiche/quiche/http2/adapter/header_validator_test.cc +73 -1
- package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +66 -0
- package/third_party/quiche/quiche/http2/adapter/nghttp2_session_test.cc +8 -5
- package/third_party/quiche/quiche/http2/adapter/nghttp2_test.cc +1 -1
- package/third_party/quiche/quiche/http2/adapter/noop_header_validator.cc +22 -0
- package/third_party/quiche/quiche/http2/adapter/noop_header_validator.h +25 -0
- package/third_party/quiche/quiche/http2/adapter/noop_header_validator_test.cc +523 -0
- package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +186 -5
- package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +37 -43
- package/third_party/quiche/quiche/http2/adapter/oghttp2_session.h +22 -23
- package/third_party/quiche/quiche/http2/adapter/test_utils.cc +1 -1
- package/third_party/quiche/quiche/http2/adapter/window_manager_test.cc +11 -5
- package/third_party/quiche/quiche/http2/core/http2_trace_logging.cc +13 -11
- package/third_party/quiche/quiche/http2/core/http2_trace_logging.h +5 -4
- package/third_party/quiche/quiche/http2/core/priority_write_scheduler.h +42 -36
- package/third_party/quiche/quiche/http2/core/priority_write_scheduler_test.cc +2 -2
- package/third_party/quiche/quiche/http2/decoder/decode_buffer_test.cc +9 -9
- package/third_party/quiche/quiche/http2/decoder/decode_http2_structures_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/http2_frame_decoder_test.cc +14 -14
- package/third_party/quiche/quiche/http2/decoder/http2_structure_decoder_test.cc +17 -17
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/altsvc_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/continuation_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/data_payload_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/goaway_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/headers_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/ping_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/priority_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/priority_update_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/push_promise_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/rst_stream_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/settings_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/unknown_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/window_update_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_block_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc +8 -8
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc +4 -3
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_tables_test.cc +17 -17
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_test.cc +25 -25
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_entry_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_entry_type_decoder_test.cc +7 -6
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_string_decoder_test.cc +6 -6
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc +1 -1
- package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_encoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_transcoder_test.cc +5 -5
- package/third_party/quiche/quiche/http2/hpack/varint/hpack_varint_decoder_test.cc +4 -4
- package/third_party/quiche/quiche/http2/hpack/varint/hpack_varint_round_trip_test.cc +1 -1
- package/third_party/quiche/quiche/http2/http2_constants_test.cc +1 -1
- package/third_party/quiche/quiche/http2/http2_structures_test.cc +23 -22
- package/third_party/quiche/quiche/http2/test_tools/frame_decoder_state_test_util.cc +1 -1
- package/third_party/quiche/quiche/http2/test_tools/frame_decoder_state_test_util.h +1 -1
- package/third_party/quiche/quiche/http2/test_tools/frame_parts.cc +38 -38
- package/third_party/quiche/quiche/http2/test_tools/hpack_block_collector.cc +15 -15
- package/third_party/quiche/quiche/http2/test_tools/hpack_entry_collector.cc +24 -22
- package/third_party/quiche/quiche/http2/test_tools/hpack_string_collector.cc +5 -5
- package/third_party/quiche/quiche/http2/test_tools/http2_frame_builder_test.cc +70 -89
- package/third_party/quiche/quiche/http2/test_tools/payload_decoder_base_test_util.cc +1 -1
- package/third_party/quiche/quiche/http2/test_tools/payload_decoder_base_test_util.h +29 -26
- package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test.cc → random_decoder_test_base.cc} +13 -10
- package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test.h → random_decoder_test_base.h} +15 -17
- package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test_test.cc → random_decoder_test_base_test.cc} +1 -1
- package/third_party/quiche/quiche/http2/test_tools/verify_macros.h +32 -0
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.cc +2 -1
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_simulator_test.cc +3 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender_test.cc +3 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats.cc +3 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats.h +2 -1
- package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats_test.cc +2 -13
- package/third_party/quiche/quiche/quic/core/crypto/certificate_view.cc +15 -0
- package/third_party/quiche/quiche/quic/core/crypto/certificate_view.h +7 -0
- package/third_party/quiche/quiche/quic/core/crypto/certificate_view_test.cc +16 -0
- package/third_party/quiche/quiche/quic/core/crypto/crypto_protocol.h +1 -0
- package/third_party/quiche/quiche/quic/core/crypto/proof_source.h +2 -2
- package/third_party/quiche/quiche/quic/core/crypto/proof_source_x509.cc +3 -5
- package/third_party/quiche/quiche/quic/core/crypto/proof_source_x509.h +1 -2
- package/third_party/quiche/quiche/quic/core/crypto/quic_crypto_server_config.cc +1 -1
- package/third_party/quiche/quiche/quic/core/crypto/quic_crypto_server_config.h +3 -3
- package/third_party/quiche/quiche/quic/core/frames/quic_blocked_frame.cc +2 -8
- package/third_party/quiche/quiche/quic/core/frames/quic_blocked_frame.h +0 -1
- package/third_party/quiche/quiche/quic/core/frames/quic_crypto_frame.h +2 -0
- package/third_party/quiche/quiche/quic/core/frames/quic_frames_test.cc +2 -1
- package/third_party/quiche/quiche/quic/core/http/capsule.cc +2 -22
- package/third_party/quiche/quiche/quic/core/http/capsule.h +0 -2
- package/third_party/quiche/quiche/quic/core/http/capsule_test.cc +1 -2
- package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +148 -57
- package/third_party/quiche/quiche/quic/core/http/http_constants.cc +1 -1
- package/third_party/quiche/quiche/quic/core/http/http_constants.h +2 -2
- package/third_party/quiche/quiche/quic/core/http/quic_header_list_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/http/quic_headers_stream_test.cc +18 -14
- package/third_party/quiche/quiche/quic/core/http/quic_send_control_stream.h +2 -1
- package/third_party/quiche/quiche/quic/core/http/quic_send_control_stream_test.cc +3 -7
- package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.h +4 -0
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.cc +47 -65
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.h +5 -17
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session_test.cc +63 -54
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.cc +34 -91
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.h +1 -9
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +27 -134
- package/third_party/quiche/quiche/quic/core/http/spdy_utils.cc +0 -41
- package/third_party/quiche/quiche/quic/core/http/spdy_utils.h +0 -9
- package/third_party/quiche/quiche/quic/core/http/spdy_utils_test.cc +0 -32
- package/third_party/quiche/quiche/quic/core/http/web_transport_http3.cc +0 -1
- package/third_party/quiche/quiche/quic/core/packet_number_indexed_queue_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/qpack/qpack_header_table.cc +2 -1
- package/third_party/quiche/quiche/quic/core/qpack/qpack_send_stream.h +2 -1
- package/third_party/quiche/quiche/quic/core/quic_arena_scoped_ptr_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection.cc +68 -46
- package/third_party/quiche/quiche/quic/core/quic_connection.h +7 -6
- package/third_party/quiche/quiche/quic/core/quic_connection_context_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection_id_manager_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection_id_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +45 -132
- package/third_party/quiche/quiche/quic/core/quic_constants.h +0 -7
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.cc +11 -3
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.h +1 -1
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker.cc +13 -1
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker.h +3 -0
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_stream.cc +6 -0
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_stream.h +8 -0
- package/third_party/quiche/quiche/quic/core/quic_crypto_server_stream.cc +26 -13
- package/third_party/quiche/quiche/quic/core/quic_crypto_server_stream.h +5 -2
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +55 -47
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream.h +15 -10
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream_test.cc +34 -5
- package/third_party/quiche/quiche/quic/core/quic_dispatcher.cc +20 -11
- package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +37 -13
- package/third_party/quiche/quiche/quic/core/quic_flags_list.h +6 -10
- package/third_party/quiche/quiche/quic/core/quic_flow_controller.cc +3 -3
- package/third_party/quiche/quiche/quic/core/quic_flow_controller.h +2 -2
- package/third_party/quiche/quiche/quic/core/quic_flow_controller_test.cc +15 -10
- package/third_party/quiche/quiche/quic/core/quic_framer.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_one_block_arena.h +3 -2
- package/third_party/quiche/quiche/quic/core/quic_one_block_arena_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +3 -11
- package/third_party/quiche/quiche/quic/core/quic_packet_creator.h +0 -8
- package/third_party/quiche/quiche/quic/core/quic_ping_manager.cc +14 -14
- package/third_party/quiche/quiche/quic/core/quic_ping_manager_test.cc +48 -0
- package/third_party/quiche/quiche/quic/core/quic_received_packet_manager.cc +3 -18
- package/third_party/quiche/quiche/quic/core/quic_received_packet_manager_test.cc +4 -14
- package/third_party/quiche/quiche/quic/core/quic_server_id_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_session.cc +4 -4
- package/third_party/quiche/quiche/quic/core/quic_session.h +1 -1
- package/third_party/quiche/quiche/quic/core/quic_session_test.cc +21 -1
- package/third_party/quiche/quiche/quic/core/quic_stream.cc +4 -7
- package/third_party/quiche/quiche/quic/core/quic_stream_test.cc +2 -4
- package/third_party/quiche/quiche/quic/core/quic_trace_visitor_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_types.h +3 -8
- package/third_party/quiche/quiche/quic/core/quic_udp_socket_posix.cc +5 -4
- package/third_party/quiche/quiche/quic/core/quic_unacked_packet_map_test.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_utils.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_utils.h +2 -2
- package/third_party/quiche/quiche/quic/core/quic_versions_test.cc +0 -1
- package/third_party/quiche/quiche/quic/core/tls_client_handshaker.cc +13 -0
- package/third_party/quiche/quiche/quic/core/tls_client_handshaker.h +2 -0
- package/third_party/quiche/quiche/quic/core/tls_server_handshaker.cc +17 -3
- package/third_party/quiche/quiche/quic/core/tls_server_handshaker.h +3 -1
- package/third_party/quiche/quiche/quic/core/uber_received_packet_manager_test.cc +18 -10
- package/third_party/quiche/quiche/quic/masque/masque_client_bin.cc +6 -4
- package/third_party/quiche/quiche/quic/masque/masque_client_session.cc +23 -7
- package/third_party/quiche/quiche/quic/masque/masque_client_session.h +1 -1
- package/third_party/quiche/quiche/quic/masque/masque_server_backend.cc +13 -0
- package/third_party/quiche/quiche/quic/masque/masque_server_backend.h +2 -0
- package/third_party/quiche/quiche/quic/masque/masque_server_bin.cc +5 -4
- package/third_party/quiche/quiche/quic/masque/masque_server_session.cc +30 -40
- package/third_party/quiche/quiche/quic/masque/masque_server_session.h +1 -1
- package/third_party/quiche/quiche/quic/platform/api/quic_export.h +4 -4
- package/third_party/quiche/quiche/quic/platform/api/quic_flags.h +0 -1
- package/third_party/quiche/quiche/quic/platform/api/quic_logging.h +0 -6
- package/third_party/quiche/quiche/quic/platform/api/quic_test.h +6 -5
- package/third_party/quiche/quiche/quic/qbone/bonnet/icmp_reachable_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/bonnet/mock_qbone_tunnel.h +2 -0
- package/third_party/quiche/quiche/quic/qbone/bonnet/qbone_tunnel_interface.h +2 -0
- package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_controller_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_packet_exchanger_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/platform/netlink_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/platform/tcp_packet.cc +5 -4
- package/third_party/quiche/quiche/quic/qbone/qbone_client_session.cc +4 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_packet_processor.cc +2 -1
- package/third_party/quiche/quiche/quic/qbone/qbone_packet_processor_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_server_session.cc +4 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_session_base.cc +3 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_stream.cc +4 -4
- package/third_party/quiche/quiche/quic/test_tools/quic_connection_peer.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/quic_http_response_cache_data/test.example.com/index.html +63 -0
- package/third_party/quiche/quiche/quic/test_tools/quic_http_response_cache_data/test.example.com/map.html +65 -0
- package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.cc +4 -3
- package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +18 -1
- package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint_test.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/simulator/simulator_test.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/test_ticket_crypter.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/test_ticket_crypter.h +2 -2
- package/third_party/quiche/quiche/quic/{core/crypto → tools}/crypto_message_printer_bin.cc +0 -0
- package/third_party/quiche/quiche/quic/{core/qpack → tools}/qpack_offline_decoder_bin.cc +0 -0
- package/third_party/quiche/quiche/quic/tools/quic_client_interop_test_bin.cc +4 -3
- package/third_party/quiche/quiche/quic/tools/quic_memory_cache_backend_test.cc +3 -31
- package/third_party/quiche/quiche/quic/tools/quic_packet_printer_bin.cc +2 -2
- package/third_party/quiche/quiche/quic/tools/quic_simple_server_session.h +1 -1
- package/third_party/quiche/quiche/quic/tools/quic_simple_server_session_test.cc +1 -1
- package/third_party/quiche/quiche/quic/tools/quic_toy_client.cc +52 -38
- package/third_party/quiche/quiche/quic/tools/quic_toy_server.cc +10 -7
- package/third_party/quiche/quiche/quic/tools/simple_ticket_crypter.cc +1 -1
- package/third_party/quiche/quiche/quic/tools/simple_ticket_crypter.h +1 -1
- package/third_party/quiche/quiche/quic/tools/web_transport_test_visitors.h +3 -2
- package/third_party/quiche/quiche/spdy/core/array_output_buffer.h +1 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_encoder_test.cc +2 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_header_table_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_round_trip_test.cc +2 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_static_table_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/http2_frame_decoder_adapter.cc +8 -6
- package/third_party/quiche/quiche/spdy/core/http2_frame_decoder_adapter.h +17 -6
- package/third_party/quiche/quiche/spdy/core/metadata_extension.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/metadata_extension_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/spdy_framer_test.cc +21 -17
- package/third_party/quiche/quiche/spdy/core/spdy_intrusive_list_test.cc +3 -3
- package/third_party/quiche/quiche/spdy/core/spdy_no_op_visitor.h +6 -4
- package/third_party/quiche/quiche/spdy/core/spdy_pinnable_buffer_piece_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/spdy_prefixed_buffer_reader_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/spdy_protocol_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/test_tools/mock_spdy_framer_visitor.h +5 -4
- package/third_party/boringssl/src/util/bot/cmake-win32.zip.sha1 +0 -1
- package/third_party/quiche/quiche/common/platform/api/quiche_mock_log.h +0 -18
- package/third_party/quiche/quiche/common/platform/api/quiche_test_helpers.h +0 -8
- package/third_party/quiche/quiche/quic/platform/api/quic_mock_log.h +0 -19
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_dispatcher.cc +0 -51
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_dispatcher.h +0 -41
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_session.cc +0 -168
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_session.h +0 -78
|
@@ -28,7 +28,7 @@ const QuicByteCount kDefaultBdp = kDefaultBandwidth * kDefaultPropagationDelay;
|
|
|
28
28
|
|
|
29
29
|
// A simple test harness where all hosts are connected to a switch with
|
|
30
30
|
// identical links.
|
|
31
|
-
class QuicEndpointTest : public QuicTest {
|
|
31
|
+
class QuicEndpointTest : public quic::test::QuicTest {
|
|
32
32
|
public:
|
|
33
33
|
QuicEndpointTest()
|
|
34
34
|
: simulator_(), switch_(&simulator_, "Switch", 8, kDefaultBdp * 2) {}
|
|
@@ -47,7 +47,7 @@ class Counter : public Actor {
|
|
|
47
47
|
QuicTime::Delta period_;
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
-
class SimulatorTest : public QuicTest {};
|
|
50
|
+
class SimulatorTest : public quic::test::QuicTest {};
|
|
51
51
|
|
|
52
52
|
// Test that the basic event handling works, and that Actors can be created and
|
|
53
53
|
// destroyed mid-simulation.
|
|
@@ -55,7 +55,7 @@ std::vector<uint8_t> TestTicketCrypter::Decrypt(absl::string_view in) {
|
|
|
55
55
|
|
|
56
56
|
void TestTicketCrypter::Decrypt(
|
|
57
57
|
absl::string_view in,
|
|
58
|
-
std::
|
|
58
|
+
std::shared_ptr<ProofSource::DecryptCallback> callback) {
|
|
59
59
|
auto decrypted_ticket = Decrypt(in);
|
|
60
60
|
if (run_async_) {
|
|
61
61
|
pending_callbacks_.push_back({std::move(callback), decrypted_ticket});
|
|
@@ -22,7 +22,7 @@ class TestTicketCrypter : public ProofSource::TicketCrypter {
|
|
|
22
22
|
std::vector<uint8_t> Encrypt(absl::string_view in,
|
|
23
23
|
absl::string_view encryption_key) override;
|
|
24
24
|
void Decrypt(absl::string_view in,
|
|
25
|
-
std::
|
|
25
|
+
std::shared_ptr<ProofSource::DecryptCallback> callback) override;
|
|
26
26
|
|
|
27
27
|
void SetRunCallbacksAsync(bool run_async);
|
|
28
28
|
size_t NumPendingCallbacks();
|
|
@@ -36,7 +36,7 @@ class TestTicketCrypter : public ProofSource::TicketCrypter {
|
|
|
36
36
|
std::vector<uint8_t> Decrypt(absl::string_view in);
|
|
37
37
|
|
|
38
38
|
struct PendingCallback {
|
|
39
|
-
std::
|
|
39
|
+
std::shared_ptr<ProofSource::DecryptCallback> callback;
|
|
40
40
|
std::vector<uint8_t> decrypted_ticket;
|
|
41
41
|
};
|
|
42
42
|
|
|
File without changes
|
|
File without changes
|
|
@@ -395,9 +395,9 @@ int main(int argc, char* argv[]) {
|
|
|
395
395
|
quiche::QuichePrintCommandLineFlagHelp(usage);
|
|
396
396
|
exit(1);
|
|
397
397
|
}
|
|
398
|
-
std::string dns_host =
|
|
398
|
+
std::string dns_host = quiche::GetQuicheCommandLineFlag(FLAGS_host);
|
|
399
399
|
std::string url_host = "";
|
|
400
|
-
int port =
|
|
400
|
+
int port = quiche::GetQuicheCommandLineFlag(FLAGS_port);
|
|
401
401
|
|
|
402
402
|
if (!args.empty()) {
|
|
403
403
|
quic::QuicUrl url(args[0], "https");
|
|
@@ -423,7 +423,8 @@ int main(int argc, char* argv[]) {
|
|
|
423
423
|
// Pick QUIC version to use.
|
|
424
424
|
quic::QuicVersionInitializeSupportForIetfDraft();
|
|
425
425
|
quic::ParsedQuicVersion version = quic::UnsupportedQuicVersion();
|
|
426
|
-
std::string quic_version_string =
|
|
426
|
+
std::string quic_version_string =
|
|
427
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_quic_version);
|
|
427
428
|
if (!quic_version_string.empty()) {
|
|
428
429
|
version = quic::ParseQuicVersionString(quic_version_string);
|
|
429
430
|
} else {
|
|
@@ -31,7 +31,9 @@ class QuicMemoryCacheBackendTest : public QuicTest {
|
|
|
31
31
|
(*headers)[":scheme"] = "https";
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
std::string CacheDirectory() {
|
|
34
|
+
std::string CacheDirectory() {
|
|
35
|
+
return quiche::test::QuicheGetTestMemoryCachePath();
|
|
36
|
+
}
|
|
35
37
|
|
|
36
38
|
QuicMemoryCacheBackend cache_;
|
|
37
39
|
};
|
|
@@ -96,36 +98,6 @@ TEST_F(QuicMemoryCacheBackendTest, MAYBE_ReadsCacheDir) {
|
|
|
96
98
|
EXPECT_LT(0U, response->body().length());
|
|
97
99
|
}
|
|
98
100
|
|
|
99
|
-
// TODO(crbug.com/1249712) This test is failing on iOS.
|
|
100
|
-
#if defined(OS_IOS)
|
|
101
|
-
#define MAYBE_ReadsCacheDirWithServerPushResource \
|
|
102
|
-
DISABLED_ReadsCacheDirWithServerPushResource
|
|
103
|
-
#else
|
|
104
|
-
#define MAYBE_ReadsCacheDirWithServerPushResource \
|
|
105
|
-
ReadsCacheDirWithServerPushResource
|
|
106
|
-
#endif
|
|
107
|
-
TEST_F(QuicMemoryCacheBackendTest, MAYBE_ReadsCacheDirWithServerPushResource) {
|
|
108
|
-
cache_.InitializeBackend(CacheDirectory() + "_with_push");
|
|
109
|
-
std::list<ServerPushInfo> resources =
|
|
110
|
-
cache_.GetServerPushResources("test.example.com/");
|
|
111
|
-
ASSERT_EQ(1UL, resources.size());
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// TODO(crbug.com/1249712) This test is failing on iOS.
|
|
115
|
-
#if defined(OS_IOS)
|
|
116
|
-
#define MAYBE_ReadsCacheDirWithServerPushResources \
|
|
117
|
-
DISABLED_ReadsCacheDirWithServerPushResources
|
|
118
|
-
#else
|
|
119
|
-
#define MAYBE_ReadsCacheDirWithServerPushResources \
|
|
120
|
-
ReadsCacheDirWithServerPushResources
|
|
121
|
-
#endif
|
|
122
|
-
TEST_F(QuicMemoryCacheBackendTest, MAYBE_ReadsCacheDirWithServerPushResources) {
|
|
123
|
-
cache_.InitializeBackend(CacheDirectory() + "_with_push");
|
|
124
|
-
std::list<ServerPushInfo> resources =
|
|
125
|
-
cache_.GetServerPushResources("test.example.com/index2.html");
|
|
126
|
-
ASSERT_EQ(2UL, resources.size());
|
|
127
|
-
}
|
|
128
|
-
|
|
129
101
|
// TODO(crbug.com/1249712) This test is failing on iOS.
|
|
130
102
|
#if defined(OS_IOS)
|
|
131
103
|
#define MAYBE_UsesOriginalUrl DISABLED_UsesOriginalUrl
|
|
@@ -271,8 +271,8 @@ int main(int argc, char* argv[]) {
|
|
|
271
271
|
quic::QuicTime start(quic::QuicTime::Zero());
|
|
272
272
|
quic::QuicFramer framer(versions, start, perspective,
|
|
273
273
|
quic::kQuicDefaultConnectionIdLength);
|
|
274
|
-
const quic::ParsedQuicVersion& version =
|
|
275
|
-
|
|
274
|
+
const quic::ParsedQuicVersion& version = quic::ParseQuicVersionString(
|
|
275
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_quic_version));
|
|
276
276
|
if (version != quic::ParsedQuicVersion::Unsupported()) {
|
|
277
277
|
framer.set_version(version);
|
|
278
278
|
}
|
|
@@ -97,7 +97,7 @@ class QuicSimpleServerSession : public QuicServerSessionBase {
|
|
|
97
97
|
}
|
|
98
98
|
HttpDatagramSupport LocalHttpDatagramSupport() override {
|
|
99
99
|
if (ShouldNegotiateWebTransport()) {
|
|
100
|
-
return HttpDatagramSupport::
|
|
100
|
+
return HttpDatagramSupport::kDraft04;
|
|
101
101
|
}
|
|
102
102
|
return QuicServerSessionBase::LocalHttpDatagramSupport();
|
|
103
103
|
}
|
|
@@ -179,7 +179,7 @@ class MockQuicSimpleServerSession : public QuicSimpleServerSession {
|
|
|
179
179
|
const spdy::Http2HeaderBlock& headers),
|
|
180
180
|
());
|
|
181
181
|
|
|
182
|
-
MOCK_METHOD(void, SendBlocked, (QuicStreamId), (override));
|
|
182
|
+
MOCK_METHOD(void, SendBlocked, (QuicStreamId, QuicStreamOffset), (override));
|
|
183
183
|
MOCK_METHOD(bool, WriteControlFrame,
|
|
184
184
|
(const QuicFrame& frame, TransmissionType type), (override));
|
|
185
185
|
};
|
|
@@ -230,18 +230,18 @@ QuicToyClient::QuicToyClient(ClientFactory* client_factory)
|
|
|
230
230
|
int QuicToyClient::SendRequestsAndPrintResponses(
|
|
231
231
|
std::vector<std::string> urls) {
|
|
232
232
|
QuicUrl url(urls[0], "https");
|
|
233
|
-
std::string host =
|
|
233
|
+
std::string host = quiche::GetQuicheCommandLineFlag(FLAGS_host);
|
|
234
234
|
if (host.empty()) {
|
|
235
235
|
host = url.host();
|
|
236
236
|
}
|
|
237
|
-
int port =
|
|
237
|
+
int port = quiche::GetQuicheCommandLineFlag(FLAGS_port);
|
|
238
238
|
if (port == 0) {
|
|
239
239
|
port = url.port();
|
|
240
240
|
}
|
|
241
241
|
|
|
242
242
|
quic::ParsedQuicVersionVector versions = quic::CurrentSupportedVersions();
|
|
243
243
|
|
|
244
|
-
if (
|
|
244
|
+
if (quiche::GetQuicheCommandLineFlag(FLAGS_quic_ietf_draft)) {
|
|
245
245
|
quic::QuicVersionInitializeSupportForIetfDraft();
|
|
246
246
|
versions = {};
|
|
247
247
|
for (const ParsedQuicVersion& version : AllSupportedVersions()) {
|
|
@@ -252,7 +252,8 @@ int QuicToyClient::SendRequestsAndPrintResponses(
|
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
-
std::string quic_version_string =
|
|
255
|
+
std::string quic_version_string =
|
|
256
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_quic_version);
|
|
256
257
|
if (!quic_version_string.empty()) {
|
|
257
258
|
versions = quic::ParseQuicVersionVectorString(quic_version_string);
|
|
258
259
|
}
|
|
@@ -266,36 +267,40 @@ int QuicToyClient::SendRequestsAndPrintResponses(
|
|
|
266
267
|
quic::QuicEnableVersion(version);
|
|
267
268
|
}
|
|
268
269
|
|
|
269
|
-
if (
|
|
270
|
+
if (quiche::GetQuicheCommandLineFlag(FLAGS_force_version_negotiation)) {
|
|
270
271
|
versions.insert(versions.begin(),
|
|
271
272
|
quic::QuicVersionReservedForNegotiation());
|
|
272
273
|
}
|
|
273
274
|
|
|
274
|
-
const int32_t num_requests(
|
|
275
|
+
const int32_t num_requests(
|
|
276
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_num_requests));
|
|
275
277
|
std::unique_ptr<quic::ProofVerifier> proof_verifier;
|
|
276
|
-
if (
|
|
278
|
+
if (quiche::GetQuicheCommandLineFlag(
|
|
279
|
+
FLAGS_disable_certificate_verification)) {
|
|
277
280
|
proof_verifier = std::make_unique<FakeProofVerifier>();
|
|
278
281
|
} else {
|
|
279
282
|
proof_verifier = quic::CreateDefaultProofVerifier(url.host());
|
|
280
283
|
}
|
|
281
284
|
std::unique_ptr<quic::SessionCache> session_cache;
|
|
282
|
-
if (num_requests > 1 &&
|
|
285
|
+
if (num_requests > 1 &&
|
|
286
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_one_connection_per_request)) {
|
|
283
287
|
session_cache = std::make_unique<QuicClientSessionCache>();
|
|
284
288
|
}
|
|
285
289
|
|
|
286
290
|
QuicConfig config;
|
|
287
|
-
std::string connection_options_string =
|
|
291
|
+
std::string connection_options_string =
|
|
292
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_connection_options);
|
|
288
293
|
if (!connection_options_string.empty()) {
|
|
289
294
|
config.SetConnectionOptionsToSend(
|
|
290
295
|
ParseQuicTagVector(connection_options_string));
|
|
291
296
|
}
|
|
292
297
|
std::string client_connection_options_string =
|
|
293
|
-
|
|
298
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_client_connection_options);
|
|
294
299
|
if (!client_connection_options_string.empty()) {
|
|
295
300
|
config.SetClientConnectionOptions(
|
|
296
301
|
ParseQuicTagVector(client_connection_options_string));
|
|
297
302
|
}
|
|
298
|
-
if (
|
|
303
|
+
if (quiche::GetQuicheCommandLineFlag(FLAGS_multi_packet_chlo)) {
|
|
299
304
|
// Make the ClientHello span multiple packets by adding a custom transport
|
|
300
305
|
// parameter.
|
|
301
306
|
constexpr auto kCustomParameter =
|
|
@@ -304,13 +309,16 @@ int QuicToyClient::SendRequestsAndPrintResponses(
|
|
|
304
309
|
config.custom_transport_parameters_to_send()[kCustomParameter] =
|
|
305
310
|
custom_value;
|
|
306
311
|
}
|
|
307
|
-
config.set_max_time_before_crypto_handshake(
|
|
308
|
-
|
|
312
|
+
config.set_max_time_before_crypto_handshake(
|
|
313
|
+
QuicTime::Delta::FromMilliseconds(quiche::GetQuicheCommandLineFlag(
|
|
314
|
+
FLAGS_max_time_before_crypto_handshake_ms)));
|
|
309
315
|
|
|
310
316
|
int address_family_for_lookup = AF_UNSPEC;
|
|
311
|
-
if (
|
|
317
|
+
if (quiche::GetQuicheCommandLineFlag(FLAGS_ip_version_for_host_lookup) ==
|
|
318
|
+
"4") {
|
|
312
319
|
address_family_for_lookup = AF_INET;
|
|
313
|
-
} else if (
|
|
320
|
+
} else if (quiche::GetQuicheCommandLineFlag(
|
|
321
|
+
FLAGS_ip_version_for_host_lookup) == "6") {
|
|
314
322
|
address_family_for_lookup = AF_INET6;
|
|
315
323
|
}
|
|
316
324
|
|
|
@@ -324,11 +332,13 @@ int QuicToyClient::SendRequestsAndPrintResponses(
|
|
|
324
332
|
return 1;
|
|
325
333
|
}
|
|
326
334
|
|
|
327
|
-
if (!
|
|
328
|
-
!
|
|
335
|
+
if (!quiche::GetQuicheCommandLineFlag(FLAGS_default_client_cert).empty() &&
|
|
336
|
+
!quiche::GetQuicheCommandLineFlag(FLAGS_default_client_cert_key)
|
|
337
|
+
.empty()) {
|
|
329
338
|
std::unique_ptr<ClientProofSource> proof_source =
|
|
330
|
-
CreateTestClientProofSource(
|
|
331
|
-
|
|
339
|
+
CreateTestClientProofSource(
|
|
340
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_default_client_cert),
|
|
341
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_default_client_cert_key));
|
|
332
342
|
if (proof_source == nullptr) {
|
|
333
343
|
std::cerr << "Failed to create client proof source." << std::endl;
|
|
334
344
|
return 1;
|
|
@@ -336,22 +346,23 @@ int QuicToyClient::SendRequestsAndPrintResponses(
|
|
|
336
346
|
client->crypto_config()->set_proof_source(std::move(proof_source));
|
|
337
347
|
}
|
|
338
348
|
|
|
339
|
-
int32_t initial_mtu =
|
|
349
|
+
int32_t initial_mtu = quiche::GetQuicheCommandLineFlag(FLAGS_initial_mtu);
|
|
340
350
|
client->set_initial_max_packet_length(
|
|
341
351
|
initial_mtu != 0 ? initial_mtu : quic::kDefaultMaxPacketSize);
|
|
342
|
-
client->set_drop_response_body(
|
|
352
|
+
client->set_drop_response_body(
|
|
353
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_drop_response_body));
|
|
343
354
|
const int32_t server_connection_id_length =
|
|
344
|
-
|
|
355
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_server_connection_id_length);
|
|
345
356
|
if (server_connection_id_length >= 0) {
|
|
346
357
|
client->set_server_connection_id_length(server_connection_id_length);
|
|
347
358
|
}
|
|
348
359
|
const int32_t client_connection_id_length =
|
|
349
|
-
|
|
360
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_client_connection_id_length);
|
|
350
361
|
if (client_connection_id_length >= 0) {
|
|
351
362
|
client->set_client_connection_id_length(client_connection_id_length);
|
|
352
363
|
}
|
|
353
364
|
const size_t max_inbound_header_list_size =
|
|
354
|
-
|
|
365
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_max_inbound_header_list_size);
|
|
355
366
|
if (max_inbound_header_list_size > 0) {
|
|
356
367
|
client->set_max_inbound_header_list_size(max_inbound_header_list_size);
|
|
357
368
|
}
|
|
@@ -366,7 +377,8 @@ int QuicToyClient::SendRequestsAndPrintResponses(
|
|
|
366
377
|
<< ". " << client->session()->error_details() << std::endl;
|
|
367
378
|
// 0: No error.
|
|
368
379
|
// 20: Failed to connect due to QUIC_INVALID_VERSION.
|
|
369
|
-
return
|
|
380
|
+
return quiche::GetQuicheCommandLineFlag(FLAGS_version_mismatch_ok) ? 0
|
|
381
|
+
: 20;
|
|
370
382
|
}
|
|
371
383
|
std::cerr << "Failed to connect to " << host << ":" << port << ". "
|
|
372
384
|
<< quic::QuicErrorCodeToString(error) << " "
|
|
@@ -376,11 +388,12 @@ int QuicToyClient::SendRequestsAndPrintResponses(
|
|
|
376
388
|
std::cerr << "Connected to " << host << ":" << port << std::endl;
|
|
377
389
|
|
|
378
390
|
// Construct the string body from flags, if provided.
|
|
379
|
-
std::string body =
|
|
380
|
-
if (!
|
|
381
|
-
QUICHE_DCHECK(
|
|
391
|
+
std::string body = quiche::GetQuicheCommandLineFlag(FLAGS_body);
|
|
392
|
+
if (!quiche::GetQuicheCommandLineFlag(FLAGS_body_hex).empty()) {
|
|
393
|
+
QUICHE_DCHECK(quiche::GetQuicheCommandLineFlag(FLAGS_body).empty())
|
|
382
394
|
<< "Only set one of --body and --body_hex.";
|
|
383
|
-
body = absl::HexStringToBytes(
|
|
395
|
+
body = absl::HexStringToBytes(
|
|
396
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_body_hex));
|
|
384
397
|
}
|
|
385
398
|
|
|
386
399
|
// Construct a GET or POST request for supplied URL.
|
|
@@ -391,7 +404,7 @@ int QuicToyClient::SendRequestsAndPrintResponses(
|
|
|
391
404
|
header_block[":path"] = url.PathParamsQuery();
|
|
392
405
|
|
|
393
406
|
// Append any additional headers supplied on the command line.
|
|
394
|
-
const std::string headers =
|
|
407
|
+
const std::string headers = quiche::GetQuicheCommandLineFlag(FLAGS_headers);
|
|
395
408
|
for (absl::string_view sp : absl::StrSplit(headers, ';')) {
|
|
396
409
|
QuicheTextUtils::RemoveLeadingAndTrailingWhitespace(&sp);
|
|
397
410
|
if (sp.empty()) {
|
|
@@ -412,14 +425,14 @@ int QuicToyClient::SendRequestsAndPrintResponses(
|
|
|
412
425
|
client->SendRequestAndWaitForResponse(header_block, body, /*fin=*/true);
|
|
413
426
|
|
|
414
427
|
// Print request and response details.
|
|
415
|
-
if (!
|
|
428
|
+
if (!quiche::GetQuicheCommandLineFlag(FLAGS_quiet)) {
|
|
416
429
|
std::cout << "Request:" << std::endl;
|
|
417
430
|
std::cout << "headers:" << header_block.DebugString();
|
|
418
|
-
if (!
|
|
431
|
+
if (!quiche::GetQuicheCommandLineFlag(FLAGS_body_hex).empty()) {
|
|
419
432
|
// Print the user provided hex, rather than binary body.
|
|
420
433
|
std::cout << "body:\n"
|
|
421
|
-
<< QuicheTextUtils::HexDump(
|
|
422
|
-
|
|
434
|
+
<< QuicheTextUtils::HexDump(absl::HexStringToBytes(
|
|
435
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_body_hex)))
|
|
423
436
|
<< std::endl;
|
|
424
437
|
} else {
|
|
425
438
|
std::cout << "body: " << body << std::endl;
|
|
@@ -436,7 +449,7 @@ int QuicToyClient::SendRequestsAndPrintResponses(
|
|
|
436
449
|
std::cout << "headers: " << client->latest_response_headers()
|
|
437
450
|
<< std::endl;
|
|
438
451
|
std::string response_body = client->latest_response_body();
|
|
439
|
-
if (!
|
|
452
|
+
if (!quiche::GetQuicheCommandLineFlag(FLAGS_body_hex).empty()) {
|
|
440
453
|
// Assume response is binary data.
|
|
441
454
|
std::cout << "body:\n"
|
|
442
455
|
<< QuicheTextUtils::HexDump(response_body) << std::endl;
|
|
@@ -458,7 +471,7 @@ int QuicToyClient::SendRequestsAndPrintResponses(
|
|
|
458
471
|
if (response_code >= 200 && response_code < 300) {
|
|
459
472
|
std::cout << "Request succeeded (" << response_code << ")." << std::endl;
|
|
460
473
|
} else if (response_code >= 300 && response_code < 400) {
|
|
461
|
-
if (
|
|
474
|
+
if (quiche::GetQuicheCommandLineFlag(FLAGS_redirect_is_success)) {
|
|
462
475
|
std::cout << "Request succeeded (redirect " << response_code << ")."
|
|
463
476
|
<< std::endl;
|
|
464
477
|
} else {
|
|
@@ -472,7 +485,7 @@ int QuicToyClient::SendRequestsAndPrintResponses(
|
|
|
472
485
|
}
|
|
473
486
|
|
|
474
487
|
if (i + 1 < num_requests) { // There are more requests to perform.
|
|
475
|
-
if (
|
|
488
|
+
if (quiche::GetQuicheCommandLineFlag(FLAGS_one_connection_per_request)) {
|
|
476
489
|
std::cout << "Disconnecting client between requests." << std::endl;
|
|
477
490
|
client->Disconnect();
|
|
478
491
|
if (!client->Initialize()) {
|
|
@@ -485,7 +498,8 @@ int QuicToyClient::SendRequestsAndPrintResponses(
|
|
|
485
498
|
<< std::endl;
|
|
486
499
|
return 1;
|
|
487
500
|
}
|
|
488
|
-
} else if (!
|
|
501
|
+
} else if (!quiche::GetQuicheCommandLineFlag(
|
|
502
|
+
FLAGS_disable_port_changes)) {
|
|
489
503
|
// Change the ephemeral port.
|
|
490
504
|
if (!client->ChangeEphemeralPort()) {
|
|
491
505
|
std::cerr << "Failed to change ephemeral port." << std::endl;
|
|
@@ -45,14 +45,15 @@ namespace quic {
|
|
|
45
45
|
std::unique_ptr<quic::QuicSimpleServerBackend>
|
|
46
46
|
QuicToyServer::MemoryCacheBackendFactory::CreateBackend() {
|
|
47
47
|
auto memory_cache_backend = std::make_unique<QuicMemoryCacheBackend>();
|
|
48
|
-
if (
|
|
48
|
+
if (quiche::GetQuicheCommandLineFlag(FLAGS_generate_dynamic_responses)) {
|
|
49
49
|
memory_cache_backend->GenerateDynamicResponses();
|
|
50
50
|
}
|
|
51
|
-
if (!
|
|
51
|
+
if (!quiche::GetQuicheCommandLineFlag(FLAGS_quic_response_cache_dir)
|
|
52
|
+
.empty()) {
|
|
52
53
|
memory_cache_backend->InitializeBackend(
|
|
53
|
-
|
|
54
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_quic_response_cache_dir));
|
|
54
55
|
}
|
|
55
|
-
if (
|
|
56
|
+
if (quiche::GetQuicheCommandLineFlag(FLAGS_enable_webtransport)) {
|
|
56
57
|
memory_cache_backend->EnableWebTransport();
|
|
57
58
|
}
|
|
58
59
|
return memory_cache_backend;
|
|
@@ -64,7 +65,7 @@ QuicToyServer::QuicToyServer(BackendFactory* backend_factory,
|
|
|
64
65
|
|
|
65
66
|
int QuicToyServer::Start() {
|
|
66
67
|
ParsedQuicVersionVector supported_versions;
|
|
67
|
-
if (
|
|
68
|
+
if (quiche::GetQuicheCommandLineFlag(FLAGS_quic_ietf_draft)) {
|
|
68
69
|
QuicVersionInitializeSupportForIetfDraft();
|
|
69
70
|
for (const ParsedQuicVersion& version : AllSupportedVersions()) {
|
|
70
71
|
// Add all versions that supports IETF QUIC.
|
|
@@ -76,7 +77,8 @@ int QuicToyServer::Start() {
|
|
|
76
77
|
} else {
|
|
77
78
|
supported_versions = AllSupportedVersions();
|
|
78
79
|
}
|
|
79
|
-
std::string versions_string =
|
|
80
|
+
std::string versions_string =
|
|
81
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_quic_versions);
|
|
80
82
|
if (!versions_string.empty()) {
|
|
81
83
|
supported_versions = ParseQuicVersionVectorString(versions_string);
|
|
82
84
|
}
|
|
@@ -92,7 +94,8 @@ int QuicToyServer::Start() {
|
|
|
92
94
|
backend.get(), std::move(proof_source), supported_versions);
|
|
93
95
|
|
|
94
96
|
if (!server->CreateUDPSocketAndListen(quic::QuicSocketAddress(
|
|
95
|
-
quic::QuicIpAddress::Any6(),
|
|
97
|
+
quic::QuicIpAddress::Any6(),
|
|
98
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_port)))) {
|
|
96
99
|
return 1;
|
|
97
100
|
}
|
|
98
101
|
|
|
@@ -87,7 +87,7 @@ std::vector<uint8_t> SimpleTicketCrypter::Decrypt(absl::string_view in) {
|
|
|
87
87
|
|
|
88
88
|
void SimpleTicketCrypter::Decrypt(
|
|
89
89
|
absl::string_view in,
|
|
90
|
-
std::
|
|
90
|
+
std::shared_ptr<quic::ProofSource::DecryptCallback> callback) {
|
|
91
91
|
callback->Run(Decrypt(in));
|
|
92
92
|
}
|
|
93
93
|
|
|
@@ -28,7 +28,7 @@ class QUIC_NO_EXPORT SimpleTicketCrypter
|
|
|
28
28
|
absl::string_view encryption_key) override;
|
|
29
29
|
void Decrypt(
|
|
30
30
|
absl::string_view in,
|
|
31
|
-
std::
|
|
31
|
+
std::shared_ptr<quic::ProofSource::DecryptCallback> callback) override;
|
|
32
32
|
|
|
33
33
|
private:
|
|
34
34
|
std::vector<uint8_t> Decrypt(absl::string_view in);
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
#include "quiche/quic/core/web_transport_interface.h"
|
|
11
11
|
#include "quiche/quic/platform/api/quic_logging.h"
|
|
12
|
+
#include "quiche/common/platform/api/quiche_logging.h"
|
|
12
13
|
#include "quiche/common/platform/api/quiche_mem_slice.h"
|
|
13
14
|
#include "quiche/common/quiche_circular_deque.h"
|
|
14
15
|
#include "quiche/common/simple_buffer_allocator.h"
|
|
@@ -123,7 +124,7 @@ class WebTransportUnidirectionalEchoReadVisitor
|
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
|
|
126
|
-
void OnCanWrite() override {
|
|
127
|
+
void OnCanWrite() override { QUICHE_NOTREACHED(); }
|
|
127
128
|
|
|
128
129
|
void OnResetStreamReceived(WebTransportStreamError /*error*/) override {}
|
|
129
130
|
void OnStopSendingReceived(WebTransportStreamError /*error*/) override {}
|
|
@@ -143,7 +144,7 @@ class WebTransportUnidirectionalEchoWriteVisitor
|
|
|
143
144
|
const std::string& data)
|
|
144
145
|
: stream_(stream), data_(data) {}
|
|
145
146
|
|
|
146
|
-
void OnCanRead() override {
|
|
147
|
+
void OnCanRead() override { QUICHE_NOTREACHED(); }
|
|
147
148
|
void OnCanWrite() override {
|
|
148
149
|
if (data_.empty()) {
|
|
149
150
|
return;
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
namespace spdy {
|
|
14
14
|
|
|
15
|
-
class
|
|
15
|
+
class QUICHE_EXPORT_PRIVATE ArrayOutputBuffer : public ZeroCopyOutputBuffer {
|
|
16
16
|
public:
|
|
17
17
|
// |buffer| is pointed to the output to write to, and |size| is the capacity
|
|
18
18
|
// of the output.
|
|
@@ -112,7 +112,7 @@ const char* kCookieKey = "cookie";
|
|
|
112
112
|
enum StartChoice { START_WITH_HANDLER, START_WITHOUT_HANDLER, NO_START };
|
|
113
113
|
|
|
114
114
|
class HpackDecoderAdapterTest
|
|
115
|
-
: public QuicheTestWithParam<std::tuple<StartChoice, bool>> {
|
|
115
|
+
: public quiche::test::QuicheTestWithParam<std::tuple<StartChoice, bool>> {
|
|
116
116
|
protected:
|
|
117
117
|
HpackDecoderAdapterTest() : decoder_(), decoder_peer_(&decoder_) {}
|
|
118
118
|
|
|
@@ -127,7 +127,8 @@ enum EncodeStrategy {
|
|
|
127
127
|
kRepresentations,
|
|
128
128
|
};
|
|
129
129
|
|
|
130
|
-
class HpackEncoderTest
|
|
130
|
+
class HpackEncoderTest
|
|
131
|
+
: public quiche::test::QuicheTestWithParam<EncodeStrategy> {
|
|
131
132
|
protected:
|
|
132
133
|
typedef test::HpackEncoderPeer::Representations Representations;
|
|
133
134
|
|
|
@@ -22,7 +22,8 @@ namespace {
|
|
|
22
22
|
// Supports testing with the input split at every byte boundary.
|
|
23
23
|
enum InputSizeParam { ALL_INPUT, ONE_BYTE, ZERO_THEN_ONE_BYTE };
|
|
24
24
|
|
|
25
|
-
class HpackRoundTripTest
|
|
25
|
+
class HpackRoundTripTest
|
|
26
|
+
: public quiche::test::QuicheTestWithParam<InputSizeParam> {
|
|
26
27
|
protected:
|
|
27
28
|
void SetUp() override {
|
|
28
29
|
// Use a small table size to tickle eviction handling.
|
|
@@ -436,7 +436,8 @@ void Http2DecoderAdapter::OnHeadersStart(const Http2FrameHeader& header) {
|
|
|
436
436
|
}
|
|
437
437
|
on_headers_called_ = true;
|
|
438
438
|
ReportReceiveCompressedFrame(header);
|
|
439
|
-
visitor()->OnHeaders(header.stream_id,
|
|
439
|
+
visitor()->OnHeaders(header.stream_id, header.payload_length,
|
|
440
|
+
kNotHasPriorityFields,
|
|
440
441
|
0, // priority
|
|
441
442
|
0, // parent_stream_id
|
|
442
443
|
false, // exclusive
|
|
@@ -460,10 +461,10 @@ void Http2DecoderAdapter::OnHeadersPriority(
|
|
|
460
461
|
<< " priority:" << priority << " frame_header:" << frame_header_;
|
|
461
462
|
return;
|
|
462
463
|
}
|
|
463
|
-
visitor()->OnHeaders(
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
464
|
+
visitor()->OnHeaders(
|
|
465
|
+
frame_header_.stream_id, frame_header_.payload_length, kHasPriorityFields,
|
|
466
|
+
priority.weight, priority.stream_dependency, priority.is_exclusive,
|
|
467
|
+
frame_header_.IsEndStream(), frame_header_.IsEndHeaders());
|
|
467
468
|
CommonStartHpackBlock();
|
|
468
469
|
}
|
|
469
470
|
|
|
@@ -505,7 +506,8 @@ void Http2DecoderAdapter::OnContinuationStart(const Http2FrameHeader& header) {
|
|
|
505
506
|
frame_header_ = header;
|
|
506
507
|
has_frame_header_ = true;
|
|
507
508
|
ReportReceiveCompressedFrame(header);
|
|
508
|
-
visitor()->OnContinuation(header.stream_id, header.
|
|
509
|
+
visitor()->OnContinuation(header.stream_id, header.payload_length,
|
|
510
|
+
header.IsEndHeaders());
|
|
509
511
|
}
|
|
510
512
|
}
|
|
511
513
|
|
|
@@ -376,9 +376,12 @@ class QUICHE_EXPORT_PRIVATE SpdyFramerVisitorInterface {
|
|
|
376
376
|
virtual void OnCommonHeader(SpdyStreamId /*stream_id*/, size_t /*length*/,
|
|
377
377
|
uint8_t /*type*/, uint8_t /*flags*/) {}
|
|
378
378
|
|
|
379
|
-
// Called when a data frame header is received. The frame's data
|
|
380
|
-
//
|
|
381
|
-
//
|
|
379
|
+
// Called when a data frame header is received. The frame's data payload will
|
|
380
|
+
// be provided via subsequent calls to OnStreamFrameData().
|
|
381
|
+
// |stream_id| The stream receiving data.
|
|
382
|
+
// |length| The length of the payload in this DATA frame. Includes the length
|
|
383
|
+
// of the data itself and potential padding.
|
|
384
|
+
// |fin| Whether the END_STREAM flag is set in the frame header.
|
|
382
385
|
virtual void OnDataFrameHeader(SpdyStreamId stream_id, size_t length,
|
|
383
386
|
bool fin) = 0;
|
|
384
387
|
|
|
@@ -444,6 +447,8 @@ class QUICHE_EXPORT_PRIVATE SpdyFramerVisitorInterface {
|
|
|
444
447
|
// Called when a HEADERS frame is received.
|
|
445
448
|
// Note that header block data is not included. See OnHeaderFrameStart().
|
|
446
449
|
// |stream_id| The stream receiving the header.
|
|
450
|
+
// |payload_length| The length of the payload in this HEADERS frame. Includes
|
|
451
|
+
// the length of the encoded header block and potential padding.
|
|
447
452
|
// |has_priority| Whether or not the headers frame included a priority value,
|
|
448
453
|
// and stream dependency info.
|
|
449
454
|
// |weight| If |has_priority| is true, then weight (in the range [1, 256])
|
|
@@ -452,10 +457,11 @@ class QUICHE_EXPORT_PRIVATE SpdyFramerVisitorInterface {
|
|
|
452
457
|
// receiving stream, else 0.
|
|
453
458
|
// |exclusive| If |has_priority| is true the exclusivity of dependence on the
|
|
454
459
|
// parent stream, else false.
|
|
455
|
-
// |fin| Whether
|
|
460
|
+
// |fin| Whether the END_STREAM flag is set in the frame header.
|
|
456
461
|
// |end| False if HEADERs frame is to be followed by a CONTINUATION frame,
|
|
457
462
|
// or true if not.
|
|
458
|
-
virtual void OnHeaders(SpdyStreamId stream_id,
|
|
463
|
+
virtual void OnHeaders(SpdyStreamId stream_id, size_t payload_length,
|
|
464
|
+
bool has_priority, int weight,
|
|
459
465
|
SpdyStreamId parent_stream_id, bool exclusive,
|
|
460
466
|
bool fin, bool end) = 0;
|
|
461
467
|
|
|
@@ -479,7 +485,12 @@ class QUICHE_EXPORT_PRIVATE SpdyFramerVisitorInterface {
|
|
|
479
485
|
|
|
480
486
|
// Called when a CONTINUATION frame is received.
|
|
481
487
|
// Note that header block data is not included. See OnHeaderFrameStart().
|
|
482
|
-
|
|
488
|
+
// |stream_id| The stream receiving the CONTINUATION.
|
|
489
|
+
// |payload_length| The length of the payload in this CONTINUATION frame.
|
|
490
|
+
// |end| True if this CONTINUATION frame will not be followed by another
|
|
491
|
+
// CONTINUATION frame.
|
|
492
|
+
virtual void OnContinuation(SpdyStreamId stream_id, size_t payload_length,
|
|
493
|
+
bool end) = 0;
|
|
483
494
|
|
|
484
495
|
// Called when an ALTSVC frame has been parsed.
|
|
485
496
|
virtual void OnAltSvc(
|
|
@@ -101,7 +101,7 @@ void MetadataVisitor::OnSetting(SpdySettingsId id, uint32_t value) {
|
|
|
101
101
|
on_support_(true);
|
|
102
102
|
}
|
|
103
103
|
} else {
|
|
104
|
-
|
|
104
|
+
QUICHE_LOG_EVERY_N_SEC(WARNING, 1)
|
|
105
105
|
<< "Unrecognized value for setting " << id << ": " << value;
|
|
106
106
|
}
|
|
107
107
|
}
|