@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
|
@@ -27,7 +27,7 @@ using ::testing::IsEmpty;
|
|
|
27
27
|
const size_t kBufferSize = 64 * 1024;
|
|
28
28
|
char kBuffer[kBufferSize];
|
|
29
29
|
|
|
30
|
-
class MetadataExtensionTest : public QuicheTest {
|
|
30
|
+
class MetadataExtensionTest : public quiche::test::QuicheTest {
|
|
31
31
|
protected:
|
|
32
32
|
MetadataExtensionTest() : test_buffer_(kBuffer, kBufferSize) {}
|
|
33
33
|
|
|
@@ -353,12 +353,13 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface,
|
|
|
353
353
|
++goaway_count_;
|
|
354
354
|
}
|
|
355
355
|
|
|
356
|
-
void OnHeaders(SpdyStreamId stream_id,
|
|
357
|
-
|
|
358
|
-
bool end) override {
|
|
359
|
-
QUICHE_VLOG(1) << "OnHeaders(" << stream_id << ", " <<
|
|
360
|
-
<<
|
|
361
|
-
<< ", " <<
|
|
356
|
+
void OnHeaders(SpdyStreamId stream_id, size_t payload_length,
|
|
357
|
+
bool has_priority, int weight, SpdyStreamId parent_stream_id,
|
|
358
|
+
bool exclusive, bool fin, bool end) override {
|
|
359
|
+
QUICHE_VLOG(1) << "OnHeaders(" << stream_id << ", " << payload_length
|
|
360
|
+
<< ", " << has_priority << ", " << weight << ", "
|
|
361
|
+
<< parent_stream_id << ", " << exclusive << ", " << fin
|
|
362
|
+
<< ", " << end << ")";
|
|
362
363
|
++headers_frame_count_;
|
|
363
364
|
InitHeaderStreaming(SpdyFrameType::HEADERS, stream_id);
|
|
364
365
|
if (fin) {
|
|
@@ -386,8 +387,10 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface,
|
|
|
386
387
|
last_push_promise_promised_stream_ = promised_stream_id;
|
|
387
388
|
}
|
|
388
389
|
|
|
389
|
-
void OnContinuation(SpdyStreamId stream_id,
|
|
390
|
-
|
|
390
|
+
void OnContinuation(SpdyStreamId stream_id, size_t payload_size,
|
|
391
|
+
bool end) override {
|
|
392
|
+
QUICHE_VLOG(1) << "OnContinuation(" << stream_id << ", " << payload_size
|
|
393
|
+
<< ", " << end << ")";
|
|
391
394
|
++continuation_count_;
|
|
392
395
|
}
|
|
393
396
|
|
|
@@ -568,7 +571,7 @@ class TestSpdyUnknownIR : public SpdyUnknownIR {
|
|
|
568
571
|
|
|
569
572
|
enum Output { USE, NOT_USE };
|
|
570
573
|
|
|
571
|
-
class SpdyFramerTest : public QuicheTestWithParam<Output> {
|
|
574
|
+
class SpdyFramerTest : public quiche::test::QuicheTestWithParam<Output> {
|
|
572
575
|
public:
|
|
573
576
|
SpdyFramerTest()
|
|
574
577
|
: output_(output_buffer, kSize),
|
|
@@ -852,7 +855,7 @@ TEST_P(SpdyFramerTest, OversizedHeadersPaddingError) {
|
|
|
852
855
|
sizeof(kH2FrameData), false);
|
|
853
856
|
|
|
854
857
|
EXPECT_CALL(visitor, OnCommonHeader(1, 5, 0x1, 0x8));
|
|
855
|
-
EXPECT_CALL(visitor, OnHeaders(1, false, 0, 0, false, false, false));
|
|
858
|
+
EXPECT_CALL(visitor, OnHeaders(1, 5, false, 0, 0, false, false, false));
|
|
856
859
|
EXPECT_CALL(visitor, OnHeaderFrameStart(1)).Times(1);
|
|
857
860
|
EXPECT_CALL(visitor, OnError(Http2DecoderAdapter::SPDY_INVALID_PADDING, _));
|
|
858
861
|
EXPECT_EQ(frame.size(), deframer_->ProcessInput(frame.data(), frame.size()));
|
|
@@ -883,7 +886,7 @@ TEST_P(SpdyFramerTest, CorrectlySizedHeadersPaddingNoError) {
|
|
|
883
886
|
SpdySerializedFrame frame(kH2FrameData, sizeof(kH2FrameData), false);
|
|
884
887
|
|
|
885
888
|
EXPECT_CALL(visitor, OnCommonHeader(1, 5, 0x1, 0x8));
|
|
886
|
-
EXPECT_CALL(visitor, OnHeaders(1, false, 0, 0, false, false, false));
|
|
889
|
+
EXPECT_CALL(visitor, OnHeaders(1, 5, false, 0, 0, false, false, false));
|
|
887
890
|
EXPECT_CALL(visitor, OnHeaderFrameStart(1)).Times(1);
|
|
888
891
|
|
|
889
892
|
EXPECT_EQ(frame.size(), deframer_->ProcessInput(frame.data(), frame.size()));
|
|
@@ -1316,14 +1319,14 @@ TEST_P(SpdyFramerTest, BasicWithError) {
|
|
|
1316
1319
|
|
|
1317
1320
|
testing::InSequence s;
|
|
1318
1321
|
EXPECT_CALL(visitor, OnCommonHeader(1, 1, 0x1, 0x4));
|
|
1319
|
-
EXPECT_CALL(visitor, OnHeaders(1, false, 0, 0, false, false, true));
|
|
1322
|
+
EXPECT_CALL(visitor, OnHeaders(1, 1, false, 0, 0, false, false, true));
|
|
1320
1323
|
EXPECT_CALL(visitor, OnHeaderFrameStart(1));
|
|
1321
1324
|
EXPECT_CALL(visitor, OnHeaderFrameEnd(1));
|
|
1322
1325
|
EXPECT_CALL(visitor, OnCommonHeader(1, 12, 0x0, 0x0));
|
|
1323
1326
|
EXPECT_CALL(visitor, OnDataFrameHeader(1, 12, false));
|
|
1324
1327
|
EXPECT_CALL(visitor, OnStreamFrameData(1, _, 12));
|
|
1325
1328
|
EXPECT_CALL(visitor, OnCommonHeader(3, 6, 0x1, 0x24));
|
|
1326
|
-
EXPECT_CALL(visitor, OnHeaders(3, true, 131, 0, false, false, true));
|
|
1329
|
+
EXPECT_CALL(visitor, OnHeaders(3, 6, true, 131, 0, false, false, true));
|
|
1327
1330
|
EXPECT_CALL(visitor, OnHeaderFrameStart(3));
|
|
1328
1331
|
EXPECT_CALL(visitor, OnHeaderFrameEnd(3));
|
|
1329
1332
|
EXPECT_CALL(visitor, OnCommonHeader(3, 8, 0x0, 0x0));
|
|
@@ -2935,7 +2938,7 @@ TEST_P(SpdyFramerTest, PushPromiseFramesWithIterator) {
|
|
|
2935
2938
|
EXPECT_FALSE(frame_it.HasNextFrame());
|
|
2936
2939
|
}
|
|
2937
2940
|
|
|
2938
|
-
class SpdyControlFrameIteratorTest : public QuicheTest {
|
|
2941
|
+
class SpdyControlFrameIteratorTest : public quiche::test::QuicheTest {
|
|
2939
2942
|
public:
|
|
2940
2943
|
SpdyControlFrameIteratorTest() : output_(output_buffer, kSize) {}
|
|
2941
2944
|
|
|
@@ -4196,7 +4199,7 @@ TEST_P(SpdyFramerTest, HeadersFrameFlags) {
|
|
|
4196
4199
|
exclusive = true;
|
|
4197
4200
|
}
|
|
4198
4201
|
EXPECT_CALL(visitor, OnCommonHeader(stream_id, _, 0x1, set_flags));
|
|
4199
|
-
EXPECT_CALL(visitor, OnHeaders(stream_id, has_priority, weight,
|
|
4202
|
+
EXPECT_CALL(visitor, OnHeaders(stream_id, _, has_priority, weight,
|
|
4200
4203
|
parent_stream_id, exclusive, fin, end));
|
|
4201
4204
|
EXPECT_CALL(visitor, OnHeaderFrameStart(57)).Times(1);
|
|
4202
4205
|
if (end) {
|
|
@@ -4338,7 +4341,7 @@ TEST_P(SpdyFramerTest, ContinuationFrameFlags) {
|
|
|
4338
4341
|
EXPECT_CALL(debug_visitor,
|
|
4339
4342
|
OnReceiveCompressedFrame(42, SpdyFrameType::HEADERS, _));
|
|
4340
4343
|
EXPECT_CALL(visitor, OnCommonHeader(42, _, 0x1, 0));
|
|
4341
|
-
EXPECT_CALL(visitor, OnHeaders(42, false, 0, 0, false, false, false));
|
|
4344
|
+
EXPECT_CALL(visitor, OnHeaders(42, _, false, 0, 0, false, false, false));
|
|
4342
4345
|
EXPECT_CALL(visitor, OnHeaderFrameStart(42)).Times(1);
|
|
4343
4346
|
|
|
4344
4347
|
SpdyHeadersIR headers_ir(/* stream_id = */ 42);
|
|
@@ -4367,7 +4370,8 @@ TEST_P(SpdyFramerTest, ContinuationFrameFlags) {
|
|
|
4367
4370
|
EXPECT_CALL(debug_visitor,
|
|
4368
4371
|
OnReceiveCompressedFrame(42, SpdyFrameType::CONTINUATION, _));
|
|
4369
4372
|
EXPECT_CALL(visitor, OnCommonHeader(42, _, 0x9, flags));
|
|
4370
|
-
EXPECT_CALL(visitor,
|
|
4373
|
+
EXPECT_CALL(visitor,
|
|
4374
|
+
OnContinuation(42, _, flags & HEADERS_FLAG_END_HEADERS));
|
|
4371
4375
|
bool end = flags & HEADERS_FLAG_END_HEADERS;
|
|
4372
4376
|
if (end) {
|
|
4373
4377
|
EXPECT_CALL(visitor, OnHeaderFrameEnd(42)).Times(1);
|
|
@@ -29,11 +29,11 @@ void swap(TestItem &a, TestItem &b) {
|
|
|
29
29
|
swap(a.n, b.n);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
class IntrusiveListTest : public QuicheTest {
|
|
32
|
+
class IntrusiveListTest : public quiche::test::QuicheTest {
|
|
33
33
|
protected:
|
|
34
34
|
void CheckLists() {
|
|
35
35
|
CheckLists(l1, ll1);
|
|
36
|
-
if (QuicheTest::HasFailure()) return;
|
|
36
|
+
if (quiche::test::QuicheTest::HasFailure()) return;
|
|
37
37
|
CheckLists(l2, ll2);
|
|
38
38
|
}
|
|
39
39
|
|
|
@@ -402,7 +402,7 @@ TEST(NewIntrusiveListTest, HandleInheritanceHierarchies) {
|
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
404
|
|
|
405
|
-
class IntrusiveListTagTypeTest : public QuicheTest {
|
|
405
|
+
class IntrusiveListTagTypeTest : public quiche::test::QuicheTest {
|
|
406
406
|
protected:
|
|
407
407
|
struct Tag {};
|
|
408
408
|
class Element : public SpdyIntrusiveLink<Element, Tag> {};
|
|
@@ -46,15 +46,17 @@ class QUICHE_EXPORT_PRIVATE SpdyNoOpVisitor
|
|
|
46
46
|
void OnSettingsAck() override {}
|
|
47
47
|
void OnGoAway(SpdyStreamId /*last_accepted_stream_id*/,
|
|
48
48
|
SpdyErrorCode /*error_code*/) override {}
|
|
49
|
-
void OnHeaders(SpdyStreamId /*stream_id*/,
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
void OnHeaders(SpdyStreamId /*stream_id*/, size_t /*payload_length*/,
|
|
50
|
+
bool /*has_priority*/, int /*weight*/,
|
|
51
|
+
SpdyStreamId /*parent_stream_id*/, bool /*exclusive*/,
|
|
52
|
+
bool /*fin*/, bool /*end*/) override {}
|
|
52
53
|
void OnWindowUpdate(SpdyStreamId /*stream_id*/,
|
|
53
54
|
int /*delta_window_size*/) override {}
|
|
54
55
|
void OnPushPromise(SpdyStreamId /*stream_id*/,
|
|
55
56
|
SpdyStreamId /*promised_stream_id*/,
|
|
56
57
|
bool /*end*/) override {}
|
|
57
|
-
void OnContinuation(SpdyStreamId /*stream_id*/,
|
|
58
|
+
void OnContinuation(SpdyStreamId /*stream_id*/, size_t /*payload_size*/,
|
|
59
|
+
bool /*end*/) override {}
|
|
58
60
|
void OnAltSvc(SpdyStreamId /*stream_id*/, absl::string_view /*origin*/,
|
|
59
61
|
const SpdyAltSvcWireFormat::AlternativeServiceVector&
|
|
60
62
|
/*altsvc_vector*/) override {}
|
|
@@ -13,7 +13,7 @@ namespace spdy {
|
|
|
13
13
|
|
|
14
14
|
namespace test {
|
|
15
15
|
|
|
16
|
-
class SpdyPinnableBufferPieceTest : public QuicheTest {
|
|
16
|
+
class SpdyPinnableBufferPieceTest : public quiche::test::QuicheTest {
|
|
17
17
|
protected:
|
|
18
18
|
SpdyPrefixedBufferReader Build(const std::string& prefix,
|
|
19
19
|
const std::string& suffix) {
|
|
@@ -15,7 +15,7 @@ namespace test {
|
|
|
15
15
|
|
|
16
16
|
using testing::ElementsAreArray;
|
|
17
17
|
|
|
18
|
-
class SpdyPrefixedBufferReaderTest : public QuicheTest {
|
|
18
|
+
class SpdyPrefixedBufferReaderTest : public quiche::test::QuicheTest {
|
|
19
19
|
protected:
|
|
20
20
|
SpdyPrefixedBufferReader Build(const std::string& prefix,
|
|
21
21
|
const std::string& suffix) {
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
#include <limits>
|
|
9
9
|
#include <memory>
|
|
10
10
|
|
|
11
|
+
#include "quiche/common/platform/api/quiche_expect_bug.h"
|
|
11
12
|
#include "quiche/common/platform/api/quiche_test.h"
|
|
12
|
-
#include "quiche/common/platform/api/quiche_test_helpers.h"
|
|
13
13
|
#include "quiche/spdy/core/spdy_bitmasks.h"
|
|
14
14
|
#include "quiche/spdy/test_tools/spdy_test_utils.h"
|
|
15
15
|
|
|
@@ -59,9 +59,9 @@ class QUICHE_NO_EXPORT MockSpdyFramerVisitor
|
|
|
59
59
|
MOCK_METHOD(bool, OnGoAwayFrameData, (const char* goaway_data, size_t len),
|
|
60
60
|
(override));
|
|
61
61
|
MOCK_METHOD(void, OnHeaders,
|
|
62
|
-
(SpdyStreamId stream_id,
|
|
63
|
-
SpdyStreamId parent_stream_id, bool exclusive,
|
|
64
|
-
bool end),
|
|
62
|
+
(SpdyStreamId stream_id, size_t payload_length, bool has_priority,
|
|
63
|
+
int weight, SpdyStreamId parent_stream_id, bool exclusive,
|
|
64
|
+
bool fin, bool end),
|
|
65
65
|
(override));
|
|
66
66
|
MOCK_METHOD(void, OnWindowUpdate,
|
|
67
67
|
(SpdyStreamId stream_id, int delta_window_size), (override));
|
|
@@ -69,7 +69,8 @@ class QUICHE_NO_EXPORT MockSpdyFramerVisitor
|
|
|
69
69
|
(SpdyStreamId stream_id, SpdyStreamId promised_stream_id,
|
|
70
70
|
bool end),
|
|
71
71
|
(override));
|
|
72
|
-
MOCK_METHOD(void, OnContinuation,
|
|
72
|
+
MOCK_METHOD(void, OnContinuation,
|
|
73
|
+
(SpdyStreamId stream_id, size_t payload_length, bool end),
|
|
73
74
|
(override));
|
|
74
75
|
MOCK_METHOD(
|
|
75
76
|
void, OnAltSvc,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
b106d66bcdc8a71ea2cdf5446091327bfdb1bcd7
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2017 The Chromium Authors. All rights reserved.
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
#ifndef QUICHE_COMMON_PLATFORM_API_QUICHE_MOCK_LOG_H_
|
|
6
|
-
#define QUICHE_COMMON_PLATFORM_API_QUICHE_MOCK_LOG_H_
|
|
7
|
-
|
|
8
|
-
#include "quiche_platform_impl/quiche_mock_log_impl.h"
|
|
9
|
-
|
|
10
|
-
using QuicheMockLog = QuicheMockLogImpl;
|
|
11
|
-
#define CREATE_QUICHE_MOCK_LOG(log) CREATE_QUICHE_MOCK_LOG_IMPL(log)
|
|
12
|
-
|
|
13
|
-
#define EXPECT_QUICHE_LOG_CALL(log) EXPECT_QUICHE_LOG_CALL_IMPL(log)
|
|
14
|
-
|
|
15
|
-
#define EXPECT_QUICHE_LOG_CALL_CONTAINS(log, level, content) \
|
|
16
|
-
EXPECT_QUICHE_LOG_CALL_CONTAINS_IMPL(log, level, content)
|
|
17
|
-
|
|
18
|
-
#endif // QUICHE_COMMON_PLATFORM_API_QUICHE_MOCK_LOG_H_
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#ifndef QUICHE_COMMON_PLATFORM_API_QUICHE_TEST_HELPERS_H_
|
|
2
|
-
#define QUICHE_COMMON_PLATFORM_API_QUICHE_TEST_HELPERS_H_
|
|
3
|
-
|
|
4
|
-
#include "quiche_platform_impl/quiche_test_helpers_impl.h"
|
|
5
|
-
|
|
6
|
-
#define EXPECT_QUICHE_BUG EXPECT_QUICHE_BUG_IMPL
|
|
7
|
-
|
|
8
|
-
#endif // QUICHE_COMMON_PLATFORM_API_QUICHE_TEST_HELPERS_H_
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2017 The Chromium Authors. All rights reserved.
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
#ifndef QUICHE_QUIC_PLATFORM_API_QUIC_MOCK_LOG_H_
|
|
6
|
-
#define QUICHE_QUIC_PLATFORM_API_QUIC_MOCK_LOG_H_
|
|
7
|
-
|
|
8
|
-
#include "quiche/common/platform/api/quiche_mock_log.h"
|
|
9
|
-
|
|
10
|
-
using QuicMockLog = QuicheMockLogImpl;
|
|
11
|
-
|
|
12
|
-
#define CREATE_QUIC_MOCK_LOG(log) CREATE_QUICHE_MOCK_LOG(log)
|
|
13
|
-
|
|
14
|
-
#define EXPECT_QUIC_LOG_CALL(log) EXPECT_QUICHE_LOG_CALL(log)
|
|
15
|
-
|
|
16
|
-
#define EXPECT_QUIC_LOG_CALL_CONTAINS(log, level, content) \
|
|
17
|
-
EXPECT_QUICHE_LOG_CALL_CONTAINS(log, level, content)
|
|
18
|
-
|
|
19
|
-
#endif // QUICHE_QUIC_PLATFORM_API_QUIC_MOCK_LOG_H_
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
#include "quiche/quic/tools/quic_transport_simple_server_dispatcher.h"
|
|
6
|
-
|
|
7
|
-
#include <memory>
|
|
8
|
-
|
|
9
|
-
#include "absl/strings/string_view.h"
|
|
10
|
-
#include "quiche/quic/core/quic_connection.h"
|
|
11
|
-
#include "quiche/quic/core/quic_dispatcher.h"
|
|
12
|
-
#include "quiche/quic/core/quic_types.h"
|
|
13
|
-
#include "quiche/quic/core/quic_versions.h"
|
|
14
|
-
#include "quiche/quic/tools/quic_transport_simple_server_session.h"
|
|
15
|
-
|
|
16
|
-
namespace quic {
|
|
17
|
-
|
|
18
|
-
QuicTransportSimpleServerDispatcher::QuicTransportSimpleServerDispatcher(
|
|
19
|
-
const QuicConfig* config, const QuicCryptoServerConfig* crypto_config,
|
|
20
|
-
QuicVersionManager* version_manager,
|
|
21
|
-
std::unique_ptr<QuicConnectionHelperInterface> helper,
|
|
22
|
-
std::unique_ptr<QuicCryptoServerStreamBase::Helper> session_helper,
|
|
23
|
-
std::unique_ptr<QuicAlarmFactory> alarm_factory,
|
|
24
|
-
uint8_t expected_server_connection_id_length,
|
|
25
|
-
std::vector<url::Origin> accepted_origins)
|
|
26
|
-
: QuicDispatcher(config, crypto_config, version_manager, std::move(helper),
|
|
27
|
-
std::move(session_helper), std::move(alarm_factory),
|
|
28
|
-
expected_server_connection_id_length),
|
|
29
|
-
accepted_origins_(accepted_origins) {}
|
|
30
|
-
|
|
31
|
-
std::unique_ptr<QuicSession>
|
|
32
|
-
QuicTransportSimpleServerDispatcher::CreateQuicSession(
|
|
33
|
-
QuicConnectionId server_connection_id,
|
|
34
|
-
const QuicSocketAddress& self_address,
|
|
35
|
-
const QuicSocketAddress& peer_address, absl::string_view /*alpn*/,
|
|
36
|
-
const ParsedQuicVersion& version,
|
|
37
|
-
const ParsedClientHello& /*parsed_chlo*/) {
|
|
38
|
-
auto connection = std::make_unique<QuicConnection>(
|
|
39
|
-
server_connection_id, self_address, peer_address, helper(),
|
|
40
|
-
alarm_factory(), writer(),
|
|
41
|
-
/*owns_writer=*/false, Perspective::IS_SERVER,
|
|
42
|
-
ParsedQuicVersionVector{version});
|
|
43
|
-
auto session = std::make_unique<QuicTransportSimpleServerSession>(
|
|
44
|
-
connection.release(), /*owns_connection=*/true, this, config(),
|
|
45
|
-
GetSupportedVersions(), crypto_config(), compressed_certs_cache(),
|
|
46
|
-
accepted_origins_);
|
|
47
|
-
session->Initialize();
|
|
48
|
-
return session;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
} // namespace quic
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
#ifndef QUICHE_QUIC_TOOLS_QUIC_TRANSPORT_SIMPLE_SERVER_DISPATCHER_H_
|
|
6
|
-
#define QUICHE_QUIC_TOOLS_QUIC_TRANSPORT_SIMPLE_SERVER_DISPATCHER_H_
|
|
7
|
-
|
|
8
|
-
#include "absl/strings/string_view.h"
|
|
9
|
-
#include "url/origin.h"
|
|
10
|
-
#include "quiche/quic/core/quic_dispatcher.h"
|
|
11
|
-
#include "quiche/quic/tools/quic_transport_simple_server_session.h"
|
|
12
|
-
|
|
13
|
-
namespace quic {
|
|
14
|
-
|
|
15
|
-
// Dispatcher that creates a QuicTransportSimpleServerSession for every incoming
|
|
16
|
-
// connection.
|
|
17
|
-
class QuicTransportSimpleServerDispatcher : public QuicDispatcher {
|
|
18
|
-
public:
|
|
19
|
-
QuicTransportSimpleServerDispatcher(
|
|
20
|
-
const QuicConfig* config, const QuicCryptoServerConfig* crypto_config,
|
|
21
|
-
QuicVersionManager* version_manager,
|
|
22
|
-
std::unique_ptr<QuicConnectionHelperInterface> helper,
|
|
23
|
-
std::unique_ptr<QuicCryptoServerStreamBase::Helper> session_helper,
|
|
24
|
-
std::unique_ptr<QuicAlarmFactory> alarm_factory,
|
|
25
|
-
uint8_t expected_server_connection_id_length,
|
|
26
|
-
std::vector<url::Origin> accepted_origins);
|
|
27
|
-
|
|
28
|
-
protected:
|
|
29
|
-
std::unique_ptr<QuicSession> CreateQuicSession(
|
|
30
|
-
QuicConnectionId server_connection_id,
|
|
31
|
-
const QuicSocketAddress& self_address,
|
|
32
|
-
const QuicSocketAddress& peer_address, absl::string_view alpn,
|
|
33
|
-
const ParsedQuicVersion& version,
|
|
34
|
-
const ParsedClientHello& parsed_chlo) override;
|
|
35
|
-
|
|
36
|
-
std::vector<url::Origin> accepted_origins_;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
} // namespace quic
|
|
40
|
-
|
|
41
|
-
#endif // QUICHE_QUIC_TOOLS_QUIC_TRANSPORT_SIMPLE_SERVER_DISPATCHER_H_
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
#include "quiche/quic/tools/quic_transport_simple_server_session.h"
|
|
6
|
-
|
|
7
|
-
#include <memory>
|
|
8
|
-
|
|
9
|
-
#include "url/gurl.h"
|
|
10
|
-
#include "url/origin.h"
|
|
11
|
-
#include "quiche/quic/core/quic_types.h"
|
|
12
|
-
#include "quiche/quic/core/quic_versions.h"
|
|
13
|
-
#include "quiche/quic/platform/api/quic_flags.h"
|
|
14
|
-
#include "quiche/quic/platform/api/quic_logging.h"
|
|
15
|
-
#include "quiche/quic/quic_transport/quic_transport_protocol.h"
|
|
16
|
-
#include "quiche/quic/quic_transport/quic_transport_stream.h"
|
|
17
|
-
#include "quiche/quic/tools/web_transport_test_visitors.h"
|
|
18
|
-
#include "quiche/common/platform/api/quiche_mem_slice.h"
|
|
19
|
-
#include "quiche/common/quiche_buffer_allocator.h"
|
|
20
|
-
|
|
21
|
-
namespace quic {
|
|
22
|
-
|
|
23
|
-
QuicTransportSimpleServerSession::QuicTransportSimpleServerSession(
|
|
24
|
-
QuicConnection* connection, bool owns_connection, Visitor* owner,
|
|
25
|
-
const QuicConfig& config, const ParsedQuicVersionVector& supported_versions,
|
|
26
|
-
const QuicCryptoServerConfig* crypto_config,
|
|
27
|
-
QuicCompressedCertsCache* compressed_certs_cache,
|
|
28
|
-
std::vector<url::Origin> accepted_origins)
|
|
29
|
-
: QuicTransportServerSession(connection, owner, config, supported_versions,
|
|
30
|
-
crypto_config, compressed_certs_cache, this),
|
|
31
|
-
owns_connection_(owns_connection),
|
|
32
|
-
mode_(DISCARD),
|
|
33
|
-
accepted_origins_(accepted_origins) {}
|
|
34
|
-
|
|
35
|
-
QuicTransportSimpleServerSession::~QuicTransportSimpleServerSession() {
|
|
36
|
-
if (owns_connection_) {
|
|
37
|
-
DeleteConnection();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
void QuicTransportSimpleServerSession::OnIncomingDataStream(
|
|
42
|
-
QuicTransportStream* stream) {
|
|
43
|
-
switch (mode_) {
|
|
44
|
-
case DISCARD:
|
|
45
|
-
stream->SetVisitor(std::make_unique<WebTransportDiscardVisitor>(stream));
|
|
46
|
-
break;
|
|
47
|
-
|
|
48
|
-
case ECHO:
|
|
49
|
-
switch (stream->type()) {
|
|
50
|
-
case BIDIRECTIONAL:
|
|
51
|
-
QUIC_DVLOG(1) << "Opening bidirectional echo stream " << stream->id();
|
|
52
|
-
stream->SetVisitor(
|
|
53
|
-
std::make_unique<WebTransportBidirectionalEchoVisitor>(stream));
|
|
54
|
-
break;
|
|
55
|
-
case READ_UNIDIRECTIONAL:
|
|
56
|
-
QUIC_DVLOG(1)
|
|
57
|
-
<< "Started receiving data on unidirectional echo stream "
|
|
58
|
-
<< stream->id();
|
|
59
|
-
stream->SetVisitor(
|
|
60
|
-
std::make_unique<WebTransportUnidirectionalEchoReadVisitor>(
|
|
61
|
-
stream,
|
|
62
|
-
[this](const std::string& s) { this->EchoStreamBack(s); }));
|
|
63
|
-
break;
|
|
64
|
-
default:
|
|
65
|
-
QUIC_NOTREACHED();
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
break;
|
|
69
|
-
|
|
70
|
-
case OUTGOING_BIDIRECTIONAL:
|
|
71
|
-
stream->SetVisitor(std::make_unique<WebTransportDiscardVisitor>(stream));
|
|
72
|
-
++pending_outgoing_bidirectional_streams_;
|
|
73
|
-
MaybeCreateOutgoingBidirectionalStream();
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
void QuicTransportSimpleServerSession::OnCanCreateNewOutgoingStream(
|
|
79
|
-
bool unidirectional) {
|
|
80
|
-
if (mode_ == ECHO && unidirectional) {
|
|
81
|
-
MaybeEchoStreamsBack();
|
|
82
|
-
} else if (mode_ == OUTGOING_BIDIRECTIONAL && !unidirectional) {
|
|
83
|
-
MaybeCreateOutgoingBidirectionalStream();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
bool QuicTransportSimpleServerSession::CheckOrigin(url::Origin origin) {
|
|
88
|
-
if (accepted_origins_.empty()) {
|
|
89
|
-
return true;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
for (const url::Origin& accepted_origin : accepted_origins_) {
|
|
93
|
-
if (origin.IsSameOriginWith(accepted_origin)) {
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
bool QuicTransportSimpleServerSession::ProcessPath(const GURL& url) {
|
|
101
|
-
if (url.path() == "/discard") {
|
|
102
|
-
mode_ = DISCARD;
|
|
103
|
-
return true;
|
|
104
|
-
}
|
|
105
|
-
if (url.path() == "/echo") {
|
|
106
|
-
mode_ = ECHO;
|
|
107
|
-
return true;
|
|
108
|
-
}
|
|
109
|
-
if (url.path() == "/receive-bidirectional") {
|
|
110
|
-
mode_ = OUTGOING_BIDIRECTIONAL;
|
|
111
|
-
return true;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
QUIC_DLOG(WARNING) << "Unknown path requested: " << url.path();
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
void QuicTransportSimpleServerSession::OnMessageReceived(
|
|
119
|
-
absl::string_view message) {
|
|
120
|
-
if (mode_ != ECHO) {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
datagram_queue()->SendOrQueueDatagram(
|
|
124
|
-
quiche::QuicheMemSlice(quiche::QuicheBuffer::Copy(
|
|
125
|
-
connection()->helper()->GetStreamSendBufferAllocator(), message)));
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
void QuicTransportSimpleServerSession::MaybeEchoStreamsBack() {
|
|
129
|
-
while (!streams_to_echo_back_.empty() &&
|
|
130
|
-
CanOpenNextOutgoingUnidirectionalStream()) {
|
|
131
|
-
// Remove the stream from the queue first, in order to avoid accidentally
|
|
132
|
-
// entering an infinite loop in case any of the following code calls
|
|
133
|
-
// OnCanCreateNewOutgoingStream().
|
|
134
|
-
std::string data = std::move(streams_to_echo_back_.front());
|
|
135
|
-
streams_to_echo_back_.pop_front();
|
|
136
|
-
|
|
137
|
-
auto stream_owned = std::make_unique<QuicTransportStream>(
|
|
138
|
-
GetNextOutgoingUnidirectionalStreamId(), this, this);
|
|
139
|
-
QuicTransportStream* stream = stream_owned.get();
|
|
140
|
-
ActivateStream(std::move(stream_owned));
|
|
141
|
-
QUIC_DVLOG(1) << "Opened echo response stream " << stream->id();
|
|
142
|
-
|
|
143
|
-
stream->SetVisitor(
|
|
144
|
-
std::make_unique<WebTransportUnidirectionalEchoWriteVisitor>(stream,
|
|
145
|
-
data));
|
|
146
|
-
stream->visitor()->OnCanWrite();
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
void QuicTransportSimpleServerSession::
|
|
151
|
-
MaybeCreateOutgoingBidirectionalStream() {
|
|
152
|
-
while (pending_outgoing_bidirectional_streams_ > 0 &&
|
|
153
|
-
CanOpenNextOutgoingBidirectionalStream()) {
|
|
154
|
-
auto stream_owned = std::make_unique<QuicTransportStream>(
|
|
155
|
-
GetNextOutgoingBidirectionalStreamId(), this, this);
|
|
156
|
-
QuicTransportStream* stream = stream_owned.get();
|
|
157
|
-
ActivateStream(std::move(stream_owned));
|
|
158
|
-
QUIC_DVLOG(1) << "Opened outgoing bidirectional stream " << stream->id();
|
|
159
|
-
stream->SetVisitor(
|
|
160
|
-
std::make_unique<WebTransportBidirectionalEchoVisitor>(stream));
|
|
161
|
-
if (!stream->Write("hello")) {
|
|
162
|
-
QUIC_DVLOG(1) << "Write failed.";
|
|
163
|
-
}
|
|
164
|
-
--pending_outgoing_bidirectional_streams_;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
} // namespace quic
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
#ifndef QUICHE_QUIC_TOOLS_QUIC_TRANSPORT_SIMPLE_SERVER_SESSION_H_
|
|
6
|
-
#define QUICHE_QUIC_TOOLS_QUIC_TRANSPORT_SIMPLE_SERVER_SESSION_H_
|
|
7
|
-
|
|
8
|
-
#include <memory>
|
|
9
|
-
#include <vector>
|
|
10
|
-
|
|
11
|
-
#include "url/origin.h"
|
|
12
|
-
#include "quiche/quic/core/quic_types.h"
|
|
13
|
-
#include "quiche/quic/core/quic_versions.h"
|
|
14
|
-
#include "quiche/quic/platform/api/quic_flags.h"
|
|
15
|
-
#include "quiche/quic/quic_transport/quic_transport_server_session.h"
|
|
16
|
-
#include "quiche/quic/quic_transport/quic_transport_stream.h"
|
|
17
|
-
|
|
18
|
-
namespace quic {
|
|
19
|
-
|
|
20
|
-
// QuicTransport simple server is a non-production server that can be used for
|
|
21
|
-
// testing QuicTransport. It has two modes that can be changed using the
|
|
22
|
-
// command line flags, "echo" and "discard".
|
|
23
|
-
class QuicTransportSimpleServerSession
|
|
24
|
-
: public QuicTransportServerSession,
|
|
25
|
-
QuicTransportServerSession::ServerVisitor {
|
|
26
|
-
public:
|
|
27
|
-
enum Mode {
|
|
28
|
-
// In DISCARD mode, any data on incoming streams is discarded and no
|
|
29
|
-
// outgoing streams are initiated.
|
|
30
|
-
DISCARD,
|
|
31
|
-
// In ECHO mode, any data sent on a bidirectional stream is echoed back.
|
|
32
|
-
// Any data sent on a unidirectional stream is buffered, and echoed back on
|
|
33
|
-
// a server-initiated unidirectional stream that is sent as soon as a FIN is
|
|
34
|
-
// received on the incoming stream.
|
|
35
|
-
ECHO,
|
|
36
|
-
// In OUTGOING_BIDIRECTIONAL mode, a server-originated bidirectional stream
|
|
37
|
-
// is created on receipt of a unidirectional stream. The contents of the
|
|
38
|
-
// unidirectional stream are disregarded. The bidirectional stream initially
|
|
39
|
-
// sends "hello", then any received data is echoed back.
|
|
40
|
-
// TODO(ricea): Maybe this should be replaced by a more general mechanism
|
|
41
|
-
// where commands on the unidirectional stream trigger different behaviour?
|
|
42
|
-
OUTGOING_BIDIRECTIONAL,
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
QuicTransportSimpleServerSession(
|
|
46
|
-
QuicConnection* connection, bool owns_connection, Visitor* owner,
|
|
47
|
-
const QuicConfig& config,
|
|
48
|
-
const ParsedQuicVersionVector& supported_versions,
|
|
49
|
-
const QuicCryptoServerConfig* crypto_config,
|
|
50
|
-
QuicCompressedCertsCache* compressed_certs_cache,
|
|
51
|
-
std::vector<url::Origin> accepted_origins);
|
|
52
|
-
~QuicTransportSimpleServerSession();
|
|
53
|
-
|
|
54
|
-
void OnIncomingDataStream(QuicTransportStream* stream) override;
|
|
55
|
-
void OnCanCreateNewOutgoingStream(bool unidirectional) override;
|
|
56
|
-
bool CheckOrigin(url::Origin origin) override;
|
|
57
|
-
bool ProcessPath(const GURL& url) override;
|
|
58
|
-
void OnMessageReceived(absl::string_view message) override;
|
|
59
|
-
|
|
60
|
-
void EchoStreamBack(const std::string& data) {
|
|
61
|
-
streams_to_echo_back_.push_back(data);
|
|
62
|
-
MaybeEchoStreamsBack();
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
private:
|
|
66
|
-
void MaybeEchoStreamsBack();
|
|
67
|
-
void MaybeCreateOutgoingBidirectionalStream();
|
|
68
|
-
|
|
69
|
-
const bool owns_connection_;
|
|
70
|
-
size_t pending_outgoing_bidirectional_streams_ = 0u;
|
|
71
|
-
Mode mode_;
|
|
72
|
-
std::vector<url::Origin> accepted_origins_;
|
|
73
|
-
quiche::QuicheCircularDeque<std::string> streams_to_echo_back_;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
} // namespace quic
|
|
77
|
-
|
|
78
|
-
#endif // QUICHE_QUIC_TOOLS_QUIC_TRANSPORT_SIMPLE_SERVER_SESSION_H_
|