@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.
Files changed (384) hide show
  1. package/.github/workflows/npm-publish-packages.yml +0 -0
  2. package/CMakeLists.txt +2 -0
  3. package/package.json +1 -1
  4. package/readme.md +0 -0
  5. package/src/http3serversession.h +1 -1
  6. package/src/webtransport.js +4 -2
  7. package/third_party/boringssl/src/CMakeLists.txt +9 -12
  8. package/third_party/boringssl/src/crypto/CMakeLists.txt +2 -3
  9. package/third_party/boringssl/src/crypto/asn1/time_support.c +206 -206
  10. package/third_party/boringssl/src/crypto/bio/socket_helper.c +124 -122
  11. package/third_party/boringssl/src/crypto/evp/digestsign.c +268 -231
  12. package/third_party/boringssl/src/crypto/evp/p_ec.c +286 -286
  13. package/third_party/boringssl/src/crypto/fipsmodule/aes/key_wrap.c +246 -236
  14. package/third_party/boringssl/src/crypto/fipsmodule/aes/mode_wrappers.c +124 -122
  15. package/third_party/boringssl/src/crypto/fipsmodule/bcm.c +3 -0
  16. package/third_party/boringssl/src/crypto/fipsmodule/bn/bytes.c +246 -230
  17. package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +734 -715
  18. package/third_party/boringssl/src/crypto/fipsmodule/bn/random.c +349 -341
  19. package/third_party/boringssl/src/crypto/fipsmodule/cipher/cipher.c +670 -648
  20. package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +1504 -1472
  21. package/third_party/boringssl/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +435 -446
  22. package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_3des_cmac_tests.txt +0 -0
  23. package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes128_cmac_tests.txt +0 -0
  24. package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes192_cmac_tests.txt +0 -0
  25. package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes256_cmac_tests.txt +0 -0
  26. package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +318 -278
  27. package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cmac_test.cc +268 -267
  28. package/third_party/boringssl/src/crypto/fipsmodule/dh/dh.c +5 -1
  29. package/third_party/boringssl/src/crypto/fipsmodule/ec/ec.c +11 -17
  30. package/third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c +15 -4
  31. package/third_party/boringssl/src/crypto/fipsmodule/ec/internal.h +2 -6
  32. package/third_party/boringssl/src/crypto/fipsmodule/ec/p224-64.c +1164 -1180
  33. package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz.c +3 -3
  34. package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz_test.cc +2 -2
  35. package/third_party/boringssl/src/crypto/fipsmodule/ec/p256.c +44 -33
  36. package/third_party/boringssl/src/crypto/fipsmodule/ec/scalar.c +169 -175
  37. package/third_party/boringssl/src/crypto/fipsmodule/ec/simple.c +352 -357
  38. package/third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c +4 -0
  39. package/third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa.c +14 -9
  40. package/third_party/boringssl/src/crypto/fipsmodule/hmac/hmac.c +256 -235
  41. package/third_party/boringssl/src/crypto/fipsmodule/rand/ctrdrbg.c +204 -202
  42. package/third_party/boringssl/src/crypto/fipsmodule/rsa/padding.c +702 -695
  43. package/third_party/boringssl/src/crypto/fipsmodule/rsa/rsa_impl.c +7 -2
  44. package/third_party/boringssl/src/crypto/fipsmodule/self_check/self_check.c +7 -0
  45. package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
  46. package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator.c +333 -0
  47. package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator_test.cc +2410 -0
  48. package/third_party/boringssl/src/crypto/fipsmodule/sha/sha1.c +359 -357
  49. package/third_party/boringssl/src/crypto/fipsmodule/sha/sha256.c +325 -321
  50. package/third_party/boringssl/src/crypto/fipsmodule/sha/sha512.c +510 -508
  51. package/third_party/boringssl/src/crypto/fipsmodule/tls/kdf.c +177 -165
  52. package/third_party/boringssl/src/crypto/internal.h +13 -0
  53. package/third_party/boringssl/src/crypto/trust_token/trust_token_test.cc +884 -884
  54. package/third_party/boringssl/src/crypto/x509/internal.h +0 -2
  55. package/third_party/boringssl/src/crypto/x509/t_crl.c +148 -148
  56. package/third_party/boringssl/src/crypto/x509/t_req.c +249 -250
  57. package/third_party/boringssl/src/crypto/x509/t_x509.c +2 -3
  58. package/third_party/boringssl/src/crypto/x509/x509_req.c +262 -304
  59. package/third_party/boringssl/src/crypto/x509/x509_set.c +250 -240
  60. package/third_party/boringssl/src/crypto/x509/x509_test.cc +466 -4
  61. package/third_party/boringssl/src/crypto/x509/x509cset.c +292 -279
  62. package/third_party/boringssl/src/crypto/x509/x509rset.c +89 -86
  63. package/third_party/boringssl/src/crypto/x509/x_crl.c +37 -125
  64. package/third_party/boringssl/src/crypto/x509/x_req.c +114 -109
  65. package/third_party/boringssl/src/crypto/x509/x_x509.c +394 -394
  66. package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +11 -16
  67. package/third_party/boringssl/src/crypto/x509v3/v3_alt.c +644 -642
  68. package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +130 -133
  69. package/third_party/boringssl/src/crypto/x509v3/v3_bitst.c +149 -144
  70. package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +496 -500
  71. package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +105 -106
  72. package/third_party/boringssl/src/crypto/x509v3/v3_ia5.c +126 -121
  73. package/third_party/boringssl/src/crypto/x509v3/v3_info.c +206 -218
  74. package/third_party/boringssl/src/crypto/x509v3/v3_int.c +97 -91
  75. package/third_party/boringssl/src/crypto/x509v3/v3_pci.c +290 -289
  76. package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +161 -156
  77. package/third_party/boringssl/src/crypto/x509v3/v3_utl.c +5 -3
  78. package/third_party/boringssl/src/include/openssl/aead.h +480 -480
  79. package/third_party/boringssl/src/include/openssl/asn1.h +2 -0
  80. package/third_party/boringssl/src/include/openssl/base.h +1 -1
  81. package/third_party/boringssl/src/include/openssl/service_indicator.h +96 -0
  82. package/third_party/boringssl/src/include/openssl/ssl.h +7 -0
  83. package/third_party/boringssl/src/include/openssl/x509.h +11 -33
  84. package/third_party/boringssl/src/include/openssl/x509v3.h +990 -1018
  85. package/third_party/boringssl/src/sources.cmake +4 -4
  86. package/third_party/boringssl/src/ssl/internal.h +10 -0
  87. package/third_party/boringssl/src/ssl/ssl_lib.cc +3081 -3072
  88. package/third_party/boringssl/src/ssl/ssl_test.cc +46 -0
  89. package/third_party/boringssl/src/ssl/tls13_server.cc +4 -6
  90. package/third_party/boringssl/src/util/bot/DEPS +14 -27
  91. package/third_party/boringssl/src/util/bot/UPDATING +3 -9
  92. package/third_party/boringssl/src/util/bot/update_clang.py +172 -172
  93. package/third_party/boringssl/src/util/bot/vs_toolchain.py +3 -3
  94. package/third_party/quiche/.bazelrc +8 -0
  95. package/third_party/quiche/BUILD.bazel +7 -0
  96. package/third_party/quiche/WHITESPACE +3 -1
  97. package/third_party/quiche/WORKSPACE.bazel +87 -0
  98. package/third_party/quiche/build/BUILD.bazel +7 -0
  99. package/third_party/quiche/build/source_list.bzl +1511 -0
  100. package/third_party/quiche/build/source_list.gni +1511 -0
  101. package/third_party/quiche/build/source_list.json +1511 -0
  102. package/third_party/quiche/build/test.bzl +26 -0
  103. package/third_party/quiche/build/zlib.BUILD +25 -0
  104. package/third_party/quiche/quiche/BUILD.bazel +270 -0
  105. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_enums.cc +3 -3
  106. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_enums.h +7 -7
  107. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame.cc +39 -18
  108. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame.h +11 -10
  109. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame_test.cc +67 -63
  110. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers.cc +13 -12
  111. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers.h +16 -8
  112. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers_test.cc +9 -9
  113. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_visitor_interface.h +4 -4
  114. package/third_party/quiche/quiche/{common/balsa → balsa}/framer_interface.h +3 -3
  115. package/third_party/quiche/quiche/{common/balsa → balsa}/header_api.h +3 -3
  116. package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties.cc +1 -1
  117. package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties.h +3 -3
  118. package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties_test.cc +1 -1
  119. package/third_party/quiche/quiche/{common/balsa → balsa}/http_validation_policy.cc +1 -1
  120. package/third_party/quiche/quiche/{common/balsa → balsa}/http_validation_policy.h +3 -3
  121. package/third_party/quiche/quiche/{common/balsa → balsa}/noop_balsa_visitor.h +4 -4
  122. package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer.cc +22 -29
  123. package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer.h +18 -16
  124. package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer_test.cc +79 -32
  125. package/third_party/quiche/quiche/{common/balsa → balsa}/standard_header_map.cc +1 -1
  126. package/third_party/quiche/quiche/{common/balsa → balsa}/standard_header_map.h +3 -3
  127. package/third_party/quiche/quiche/common/platform/api/quiche_command_line_flags.h +6 -1
  128. package/third_party/quiche/quiche/common/platform/api/quiche_flags.h +8 -0
  129. package/third_party/quiche/quiche/common/platform/api/quiche_logging.h +0 -3
  130. package/third_party/quiche/quiche/common/platform/api/quiche_lower_case_string_test.cc +29 -0
  131. package/third_party/quiche/quiche/common/platform/api/quiche_test.h +5 -7
  132. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quic_flags_impl.h +1 -1
  133. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_bug_tracker_impl.h +3 -2
  134. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_command_line_flags_impl.cc +41 -0
  135. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_command_line_flags_impl.h +33 -0
  136. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_expect_bug_impl.h +15 -0
  137. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_logging_impl.h +84 -50
  138. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_lower_case_string_impl.h +25 -0
  139. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_stack_trace_impl.cc +1 -1
  140. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc +25 -0
  141. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.h +56 -0
  142. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_output_impl.h +27 -0
  143. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_thread_impl.h +26 -0
  144. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_url_utils_impl.cc +1 -0
  145. package/third_party/quiche/quiche/common/quiche_buffer_allocator_test.cc +1 -1
  146. package/third_party/quiche/quiche/common/quiche_mem_slice_storage.h +2 -3
  147. package/third_party/quiche/quiche/common/structured_headers.cc +14 -12
  148. package/third_party/quiche/quiche/http2/adapter/event_forwarder.cc +7 -5
  149. package/third_party/quiche/quiche/http2/adapter/event_forwarder.h +4 -2
  150. package/third_party/quiche/quiche/http2/adapter/event_forwarder_test.cc +14 -9
  151. package/third_party/quiche/quiche/http2/adapter/header_validator.cc +43 -19
  152. package/third_party/quiche/quiche/http2/adapter/header_validator.h +11 -40
  153. package/third_party/quiche/quiche/http2/adapter/header_validator_base.h +69 -0
  154. package/third_party/quiche/quiche/http2/adapter/header_validator_test.cc +73 -1
  155. package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +66 -0
  156. package/third_party/quiche/quiche/http2/adapter/nghttp2_session_test.cc +8 -5
  157. package/third_party/quiche/quiche/http2/adapter/nghttp2_test.cc +1 -1
  158. package/third_party/quiche/quiche/http2/adapter/noop_header_validator.cc +22 -0
  159. package/third_party/quiche/quiche/http2/adapter/noop_header_validator.h +25 -0
  160. package/third_party/quiche/quiche/http2/adapter/noop_header_validator_test.cc +523 -0
  161. package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +186 -5
  162. package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +37 -43
  163. package/third_party/quiche/quiche/http2/adapter/oghttp2_session.h +22 -23
  164. package/third_party/quiche/quiche/http2/adapter/test_utils.cc +1 -1
  165. package/third_party/quiche/quiche/http2/adapter/window_manager_test.cc +11 -5
  166. package/third_party/quiche/quiche/http2/core/http2_trace_logging.cc +13 -11
  167. package/third_party/quiche/quiche/http2/core/http2_trace_logging.h +5 -4
  168. package/third_party/quiche/quiche/http2/core/priority_write_scheduler.h +42 -36
  169. package/third_party/quiche/quiche/http2/core/priority_write_scheduler_test.cc +2 -2
  170. package/third_party/quiche/quiche/http2/decoder/decode_buffer_test.cc +9 -9
  171. package/third_party/quiche/quiche/http2/decoder/decode_http2_structures_test.cc +1 -1
  172. package/third_party/quiche/quiche/http2/decoder/http2_frame_decoder_test.cc +14 -14
  173. package/third_party/quiche/quiche/http2/decoder/http2_structure_decoder_test.cc +17 -17
  174. package/third_party/quiche/quiche/http2/decoder/payload_decoders/altsvc_payload_decoder_test.cc +1 -1
  175. package/third_party/quiche/quiche/http2/decoder/payload_decoders/continuation_payload_decoder_test.cc +1 -1
  176. package/third_party/quiche/quiche/http2/decoder/payload_decoders/data_payload_decoder_test.cc +2 -2
  177. package/third_party/quiche/quiche/http2/decoder/payload_decoders/goaway_payload_decoder_test.cc +1 -1
  178. package/third_party/quiche/quiche/http2/decoder/payload_decoders/headers_payload_decoder_test.cc +1 -1
  179. package/third_party/quiche/quiche/http2/decoder/payload_decoders/ping_payload_decoder_test.cc +1 -1
  180. package/third_party/quiche/quiche/http2/decoder/payload_decoders/priority_payload_decoder_test.cc +1 -1
  181. package/third_party/quiche/quiche/http2/decoder/payload_decoders/priority_update_payload_decoder_test.cc +1 -1
  182. package/third_party/quiche/quiche/http2/decoder/payload_decoders/push_promise_payload_decoder_test.cc +1 -1
  183. package/third_party/quiche/quiche/http2/decoder/payload_decoders/rst_stream_payload_decoder_test.cc +1 -1
  184. package/third_party/quiche/quiche/http2/decoder/payload_decoders/settings_payload_decoder_test.cc +1 -1
  185. package/third_party/quiche/quiche/http2/decoder/payload_decoders/unknown_payload_decoder_test.cc +1 -1
  186. package/third_party/quiche/quiche/http2/decoder/payload_decoders/window_update_payload_decoder_test.cc +1 -1
  187. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_block_decoder_test.cc +2 -2
  188. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc +8 -8
  189. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc +4 -3
  190. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_tables_test.cc +17 -17
  191. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_test.cc +25 -25
  192. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_entry_decoder_test.cc +2 -2
  193. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_entry_type_decoder_test.cc +7 -6
  194. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_string_decoder_test.cc +6 -6
  195. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc +1 -1
  196. package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_decoder_test.cc +2 -2
  197. package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_encoder_test.cc +1 -1
  198. package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_transcoder_test.cc +5 -5
  199. package/third_party/quiche/quiche/http2/hpack/varint/hpack_varint_decoder_test.cc +4 -4
  200. package/third_party/quiche/quiche/http2/hpack/varint/hpack_varint_round_trip_test.cc +1 -1
  201. package/third_party/quiche/quiche/http2/http2_constants_test.cc +1 -1
  202. package/third_party/quiche/quiche/http2/http2_structures_test.cc +23 -22
  203. package/third_party/quiche/quiche/http2/test_tools/frame_decoder_state_test_util.cc +1 -1
  204. package/third_party/quiche/quiche/http2/test_tools/frame_decoder_state_test_util.h +1 -1
  205. package/third_party/quiche/quiche/http2/test_tools/frame_parts.cc +38 -38
  206. package/third_party/quiche/quiche/http2/test_tools/hpack_block_collector.cc +15 -15
  207. package/third_party/quiche/quiche/http2/test_tools/hpack_entry_collector.cc +24 -22
  208. package/third_party/quiche/quiche/http2/test_tools/hpack_string_collector.cc +5 -5
  209. package/third_party/quiche/quiche/http2/test_tools/http2_frame_builder_test.cc +70 -89
  210. package/third_party/quiche/quiche/http2/test_tools/payload_decoder_base_test_util.cc +1 -1
  211. package/third_party/quiche/quiche/http2/test_tools/payload_decoder_base_test_util.h +29 -26
  212. package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test.cc → random_decoder_test_base.cc} +13 -10
  213. package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test.h → random_decoder_test_base.h} +15 -17
  214. package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test_test.cc → random_decoder_test_base_test.cc} +1 -1
  215. package/third_party/quiche/quiche/http2/test_tools/verify_macros.h +32 -0
  216. package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.cc +2 -1
  217. package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_simulator_test.cc +3 -2
  218. package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender_test.cc +3 -2
  219. package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats.cc +3 -2
  220. package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats.h +2 -1
  221. package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats_test.cc +2 -13
  222. package/third_party/quiche/quiche/quic/core/crypto/certificate_view.cc +15 -0
  223. package/third_party/quiche/quiche/quic/core/crypto/certificate_view.h +7 -0
  224. package/third_party/quiche/quiche/quic/core/crypto/certificate_view_test.cc +16 -0
  225. package/third_party/quiche/quiche/quic/core/crypto/crypto_protocol.h +1 -0
  226. package/third_party/quiche/quiche/quic/core/crypto/proof_source.h +2 -2
  227. package/third_party/quiche/quiche/quic/core/crypto/proof_source_x509.cc +3 -5
  228. package/third_party/quiche/quiche/quic/core/crypto/proof_source_x509.h +1 -2
  229. package/third_party/quiche/quiche/quic/core/crypto/quic_crypto_server_config.cc +1 -1
  230. package/third_party/quiche/quiche/quic/core/crypto/quic_crypto_server_config.h +3 -3
  231. package/third_party/quiche/quiche/quic/core/frames/quic_blocked_frame.cc +2 -8
  232. package/third_party/quiche/quiche/quic/core/frames/quic_blocked_frame.h +0 -1
  233. package/third_party/quiche/quiche/quic/core/frames/quic_crypto_frame.h +2 -0
  234. package/third_party/quiche/quiche/quic/core/frames/quic_frames_test.cc +2 -1
  235. package/third_party/quiche/quiche/quic/core/http/capsule.cc +2 -22
  236. package/third_party/quiche/quiche/quic/core/http/capsule.h +0 -2
  237. package/third_party/quiche/quiche/quic/core/http/capsule_test.cc +1 -2
  238. package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +148 -57
  239. package/third_party/quiche/quiche/quic/core/http/http_constants.cc +1 -1
  240. package/third_party/quiche/quiche/quic/core/http/http_constants.h +2 -2
  241. package/third_party/quiche/quiche/quic/core/http/quic_header_list_test.cc +2 -2
  242. package/third_party/quiche/quiche/quic/core/http/quic_headers_stream_test.cc +18 -14
  243. package/third_party/quiche/quiche/quic/core/http/quic_send_control_stream.h +2 -1
  244. package/third_party/quiche/quiche/quic/core/http/quic_send_control_stream_test.cc +3 -7
  245. package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.h +4 -0
  246. package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.cc +47 -65
  247. package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.h +5 -17
  248. package/third_party/quiche/quiche/quic/core/http/quic_spdy_session_test.cc +63 -54
  249. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.cc +34 -91
  250. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.h +1 -9
  251. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +27 -134
  252. package/third_party/quiche/quiche/quic/core/http/spdy_utils.cc +0 -41
  253. package/third_party/quiche/quiche/quic/core/http/spdy_utils.h +0 -9
  254. package/third_party/quiche/quiche/quic/core/http/spdy_utils_test.cc +0 -32
  255. package/third_party/quiche/quiche/quic/core/http/web_transport_http3.cc +0 -1
  256. package/third_party/quiche/quiche/quic/core/packet_number_indexed_queue_test.cc +2 -2
  257. package/third_party/quiche/quiche/quic/core/qpack/qpack_header_table.cc +2 -1
  258. package/third_party/quiche/quiche/quic/core/qpack/qpack_send_stream.h +2 -1
  259. package/third_party/quiche/quiche/quic/core/quic_arena_scoped_ptr_test.cc +2 -2
  260. package/third_party/quiche/quiche/quic/core/quic_connection.cc +68 -46
  261. package/third_party/quiche/quiche/quic/core/quic_connection.h +7 -6
  262. package/third_party/quiche/quiche/quic/core/quic_connection_context_test.cc +2 -2
  263. package/third_party/quiche/quiche/quic/core/quic_connection_id_manager_test.cc +2 -2
  264. package/third_party/quiche/quiche/quic/core/quic_connection_id_test.cc +2 -2
  265. package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +45 -132
  266. package/third_party/quiche/quiche/quic/core/quic_constants.h +0 -7
  267. package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.cc +11 -3
  268. package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.h +1 -1
  269. package/third_party/quiche/quiche/quic/core/quic_control_frame_manager_test.cc +2 -2
  270. package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker.cc +13 -1
  271. package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker.h +3 -0
  272. package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker_test.cc +2 -2
  273. package/third_party/quiche/quiche/quic/core/quic_crypto_client_stream.cc +6 -0
  274. package/third_party/quiche/quiche/quic/core/quic_crypto_client_stream.h +8 -0
  275. package/third_party/quiche/quiche/quic/core/quic_crypto_server_stream.cc +26 -13
  276. package/third_party/quiche/quiche/quic/core/quic_crypto_server_stream.h +5 -2
  277. package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +55 -47
  278. package/third_party/quiche/quiche/quic/core/quic_crypto_stream.h +15 -10
  279. package/third_party/quiche/quiche/quic/core/quic_crypto_stream_test.cc +34 -5
  280. package/third_party/quiche/quiche/quic/core/quic_dispatcher.cc +20 -11
  281. package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +37 -13
  282. package/third_party/quiche/quiche/quic/core/quic_flags_list.h +6 -10
  283. package/third_party/quiche/quiche/quic/core/quic_flow_controller.cc +3 -3
  284. package/third_party/quiche/quiche/quic/core/quic_flow_controller.h +2 -2
  285. package/third_party/quiche/quiche/quic/core/quic_flow_controller_test.cc +15 -10
  286. package/third_party/quiche/quiche/quic/core/quic_framer.cc +1 -1
  287. package/third_party/quiche/quiche/quic/core/quic_one_block_arena.h +3 -2
  288. package/third_party/quiche/quiche/quic/core/quic_one_block_arena_test.cc +2 -2
  289. package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +3 -11
  290. package/third_party/quiche/quiche/quic/core/quic_packet_creator.h +0 -8
  291. package/third_party/quiche/quiche/quic/core/quic_ping_manager.cc +14 -14
  292. package/third_party/quiche/quiche/quic/core/quic_ping_manager_test.cc +48 -0
  293. package/third_party/quiche/quiche/quic/core/quic_received_packet_manager.cc +3 -18
  294. package/third_party/quiche/quiche/quic/core/quic_received_packet_manager_test.cc +4 -14
  295. package/third_party/quiche/quiche/quic/core/quic_server_id_test.cc +2 -2
  296. package/third_party/quiche/quiche/quic/core/quic_session.cc +4 -4
  297. package/third_party/quiche/quiche/quic/core/quic_session.h +1 -1
  298. package/third_party/quiche/quiche/quic/core/quic_session_test.cc +21 -1
  299. package/third_party/quiche/quiche/quic/core/quic_stream.cc +4 -7
  300. package/third_party/quiche/quiche/quic/core/quic_stream_test.cc +2 -4
  301. package/third_party/quiche/quiche/quic/core/quic_trace_visitor_test.cc +2 -2
  302. package/third_party/quiche/quiche/quic/core/quic_types.h +3 -8
  303. package/third_party/quiche/quiche/quic/core/quic_udp_socket_posix.cc +5 -4
  304. package/third_party/quiche/quiche/quic/core/quic_unacked_packet_map_test.cc +1 -1
  305. package/third_party/quiche/quiche/quic/core/quic_utils.cc +1 -1
  306. package/third_party/quiche/quiche/quic/core/quic_utils.h +2 -2
  307. package/third_party/quiche/quiche/quic/core/quic_versions_test.cc +0 -1
  308. package/third_party/quiche/quiche/quic/core/tls_client_handshaker.cc +13 -0
  309. package/third_party/quiche/quiche/quic/core/tls_client_handshaker.h +2 -0
  310. package/third_party/quiche/quiche/quic/core/tls_server_handshaker.cc +17 -3
  311. package/third_party/quiche/quiche/quic/core/tls_server_handshaker.h +3 -1
  312. package/third_party/quiche/quiche/quic/core/uber_received_packet_manager_test.cc +18 -10
  313. package/third_party/quiche/quiche/quic/masque/masque_client_bin.cc +6 -4
  314. package/third_party/quiche/quiche/quic/masque/masque_client_session.cc +23 -7
  315. package/third_party/quiche/quiche/quic/masque/masque_client_session.h +1 -1
  316. package/third_party/quiche/quiche/quic/masque/masque_server_backend.cc +13 -0
  317. package/third_party/quiche/quiche/quic/masque/masque_server_backend.h +2 -0
  318. package/third_party/quiche/quiche/quic/masque/masque_server_bin.cc +5 -4
  319. package/third_party/quiche/quiche/quic/masque/masque_server_session.cc +30 -40
  320. package/third_party/quiche/quiche/quic/masque/masque_server_session.h +1 -1
  321. package/third_party/quiche/quiche/quic/platform/api/quic_export.h +4 -4
  322. package/third_party/quiche/quiche/quic/platform/api/quic_flags.h +0 -1
  323. package/third_party/quiche/quiche/quic/platform/api/quic_logging.h +0 -6
  324. package/third_party/quiche/quiche/quic/platform/api/quic_test.h +6 -5
  325. package/third_party/quiche/quiche/quic/qbone/bonnet/icmp_reachable_test.cc +2 -2
  326. package/third_party/quiche/quiche/quic/qbone/bonnet/mock_qbone_tunnel.h +2 -0
  327. package/third_party/quiche/quiche/quic/qbone/bonnet/qbone_tunnel_interface.h +2 -0
  328. package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_controller_test.cc +2 -2
  329. package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_packet_exchanger_test.cc +2 -2
  330. package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_test.cc +2 -2
  331. package/third_party/quiche/quiche/quic/qbone/platform/netlink_test.cc +2 -2
  332. package/third_party/quiche/quiche/quic/qbone/platform/tcp_packet.cc +5 -4
  333. package/third_party/quiche/quiche/quic/qbone/qbone_client_session.cc +4 -2
  334. package/third_party/quiche/quiche/quic/qbone/qbone_packet_processor.cc +2 -1
  335. package/third_party/quiche/quiche/quic/qbone/qbone_packet_processor_test.cc +2 -2
  336. package/third_party/quiche/quiche/quic/qbone/qbone_server_session.cc +4 -2
  337. package/third_party/quiche/quiche/quic/qbone/qbone_session_base.cc +3 -2
  338. package/third_party/quiche/quiche/quic/qbone/qbone_stream.cc +4 -4
  339. package/third_party/quiche/quiche/quic/test_tools/quic_connection_peer.cc +1 -1
  340. package/third_party/quiche/quiche/quic/test_tools/quic_http_response_cache_data/test.example.com/index.html +63 -0
  341. package/third_party/quiche/quiche/quic/test_tools/quic_http_response_cache_data/test.example.com/map.html +65 -0
  342. package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.cc +4 -3
  343. package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +18 -1
  344. package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint_test.cc +1 -1
  345. package/third_party/quiche/quiche/quic/test_tools/simulator/simulator_test.cc +1 -1
  346. package/third_party/quiche/quiche/quic/test_tools/test_ticket_crypter.cc +1 -1
  347. package/third_party/quiche/quiche/quic/test_tools/test_ticket_crypter.h +2 -2
  348. package/third_party/quiche/quiche/quic/{core/crypto → tools}/crypto_message_printer_bin.cc +0 -0
  349. package/third_party/quiche/quiche/quic/{core/qpack → tools}/qpack_offline_decoder_bin.cc +0 -0
  350. package/third_party/quiche/quiche/quic/tools/quic_client_interop_test_bin.cc +4 -3
  351. package/third_party/quiche/quiche/quic/tools/quic_memory_cache_backend_test.cc +3 -31
  352. package/third_party/quiche/quiche/quic/tools/quic_packet_printer_bin.cc +2 -2
  353. package/third_party/quiche/quiche/quic/tools/quic_simple_server_session.h +1 -1
  354. package/third_party/quiche/quiche/quic/tools/quic_simple_server_session_test.cc +1 -1
  355. package/third_party/quiche/quiche/quic/tools/quic_toy_client.cc +52 -38
  356. package/third_party/quiche/quiche/quic/tools/quic_toy_server.cc +10 -7
  357. package/third_party/quiche/quiche/quic/tools/simple_ticket_crypter.cc +1 -1
  358. package/third_party/quiche/quiche/quic/tools/simple_ticket_crypter.h +1 -1
  359. package/third_party/quiche/quiche/quic/tools/web_transport_test_visitors.h +3 -2
  360. package/third_party/quiche/quiche/spdy/core/array_output_buffer.h +1 -1
  361. package/third_party/quiche/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc +1 -1
  362. package/third_party/quiche/quiche/spdy/core/hpack/hpack_encoder_test.cc +2 -1
  363. package/third_party/quiche/quiche/spdy/core/hpack/hpack_header_table_test.cc +1 -1
  364. package/third_party/quiche/quiche/spdy/core/hpack/hpack_round_trip_test.cc +2 -1
  365. package/third_party/quiche/quiche/spdy/core/hpack/hpack_static_table_test.cc +1 -1
  366. package/third_party/quiche/quiche/spdy/core/http2_frame_decoder_adapter.cc +8 -6
  367. package/third_party/quiche/quiche/spdy/core/http2_frame_decoder_adapter.h +17 -6
  368. package/third_party/quiche/quiche/spdy/core/metadata_extension.cc +1 -1
  369. package/third_party/quiche/quiche/spdy/core/metadata_extension_test.cc +1 -1
  370. package/third_party/quiche/quiche/spdy/core/spdy_framer_test.cc +21 -17
  371. package/third_party/quiche/quiche/spdy/core/spdy_intrusive_list_test.cc +3 -3
  372. package/third_party/quiche/quiche/spdy/core/spdy_no_op_visitor.h +6 -4
  373. package/third_party/quiche/quiche/spdy/core/spdy_pinnable_buffer_piece_test.cc +1 -1
  374. package/third_party/quiche/quiche/spdy/core/spdy_prefixed_buffer_reader_test.cc +1 -1
  375. package/third_party/quiche/quiche/spdy/core/spdy_protocol_test.cc +1 -1
  376. package/third_party/quiche/quiche/spdy/test_tools/mock_spdy_framer_visitor.h +5 -4
  377. package/third_party/boringssl/src/util/bot/cmake-win32.zip.sha1 +0 -1
  378. package/third_party/quiche/quiche/common/platform/api/quiche_mock_log.h +0 -18
  379. package/third_party/quiche/quiche/common/platform/api/quiche_test_helpers.h +0 -8
  380. package/third_party/quiche/quiche/quic/platform/api/quic_mock_log.h +0 -19
  381. package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_dispatcher.cc +0 -51
  382. package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_dispatcher.h +0 -41
  383. package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_session.cc +0 -168
  384. package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_session.h +0 -78
@@ -0,0 +1,26 @@
1
+ """Tools for building QUICHE tests."""
2
+
3
+ load("@bazel_skylib//lib:paths.bzl", "paths")
4
+
5
+ def test_suite_from_source_list(name, srcs, **kwargs):
6
+ """
7
+ Generates a test target for every individual test source file specified.
8
+
9
+ Args:
10
+ name: the name of the resulting test_suite target.
11
+ srcs: the list of source files from which the test targets are generated.
12
+ **kwargs: other arguments that are passed to the cc_test rule directly.s
13
+ """
14
+
15
+ tests = []
16
+ for sourcefile in srcs:
17
+ if not sourcefile.endswith("_test.cc"):
18
+ fail("All source files passed to test_suite_from_source_list() must end with _test.cc")
19
+ test_name, _ = paths.split_extension(paths.basename(sourcefile))
20
+ native.cc_test(
21
+ name = test_name,
22
+ srcs = [sourcefile],
23
+ **kwargs
24
+ )
25
+ tests.append(test_name)
26
+ native.test_suite(name = name, tests = tests)
@@ -0,0 +1,25 @@
1
+ # Copyright 2022 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
+ licenses(["notice"])
6
+
7
+ cc_library(
8
+ name = "zlib",
9
+ srcs = glob(
10
+ include = [
11
+ "*.c",
12
+ "*.h",
13
+ ],
14
+ exclude = [
15
+ "zlib.h",
16
+ "zconf.h",
17
+ ],
18
+ ),
19
+ hdrs = [
20
+ "zconf.h",
21
+ "zlib.h",
22
+ ],
23
+ copts = ["-Wno-implicit-function-declaration"],
24
+ visibility = ["//visibility:public"],
25
+ )
@@ -0,0 +1,270 @@
1
+ # Copyright 2022 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
+ load(
6
+ "//build:source_list.bzl",
7
+ "default_platform_impl_hdrs",
8
+ "default_platform_impl_srcs",
9
+ "default_platform_impl_test_support_hdrs",
10
+ "default_platform_impl_test_support_srcs",
11
+ "default_platform_impl_tool_support_hdrs",
12
+ "default_platform_impl_tool_support_srcs",
13
+ "quiche_core_hdrs",
14
+ "quiche_core_srcs",
15
+ "quiche_test_support_hdrs",
16
+ "quiche_test_support_srcs",
17
+ "quiche_tests_srcs",
18
+ "quiche_tool_support_hdrs",
19
+ "quiche_tool_support_srcs",
20
+ )
21
+ load("//build:test.bzl", "test_suite_from_source_list")
22
+
23
+ licenses(["notice"])
24
+
25
+ package(
26
+ default_visibility = ["//visibility:private"],
27
+ features = [
28
+ "parse_headers",
29
+ "layering_check",
30
+ ],
31
+ )
32
+
33
+ cc_library(
34
+ name = "quic_flags_list",
35
+ textual_hdrs = [
36
+ "quic/core/quic_flags_list.h",
37
+ "quic/core/quic_protocol_flags_list.h",
38
+ ],
39
+ )
40
+
41
+ # QUICHE_EXPORT is used by all platform definitions, and thus needs to be handled separately.
42
+ cc_library(
43
+ name = "quiche_platform_default_quiche_export",
44
+ hdrs = [
45
+ "common/platform/default/quiche_platform_impl/quiche_export_impl.h",
46
+ ],
47
+ strip_include_prefix = "common/platform/default",
48
+ )
49
+
50
+ cc_library(
51
+ name = "quiche_platform_quiche_export",
52
+ hdrs = [
53
+ "common/platform/api/quiche_export.h",
54
+ ],
55
+ deps = [":quiche_platform_default_quiche_export"],
56
+ )
57
+
58
+ cc_library(
59
+ name = "quiche_platform_default",
60
+ srcs = default_platform_impl_srcs,
61
+ hdrs = default_platform_impl_hdrs,
62
+ strip_include_prefix = "common/platform/default",
63
+ deps = [
64
+ ":quic_flags_list",
65
+ ":quiche_platform_quiche_export",
66
+ "@com_google_absl//absl/base:core_headers",
67
+ "@com_google_absl//absl/container:flat_hash_map",
68
+ "@com_google_absl//absl/container:flat_hash_set",
69
+ "@com_google_absl//absl/debugging:stacktrace",
70
+ "@com_google_absl//absl/debugging:symbolize",
71
+ "@com_google_absl//absl/strings",
72
+ "@com_google_absl//absl/strings:str_format",
73
+ "@com_google_absl//absl/synchronization",
74
+ "@com_google_absl//absl/time",
75
+ "@com_google_absl//absl/types:optional",
76
+ "@com_google_googleurl//url",
77
+ ],
78
+ )
79
+
80
+ cc_library(
81
+ name = "quiche_platform_default_tools",
82
+ srcs = default_platform_impl_tool_support_srcs,
83
+ hdrs = default_platform_impl_tool_support_hdrs,
84
+ strip_include_prefix = "common/platform/default",
85
+ deps = [
86
+ ":quiche_core",
87
+ "@com_google_absl//absl/flags:flag",
88
+ "@com_google_absl//absl/flags:parse",
89
+ "@com_google_absl//absl/flags:usage",
90
+ "@com_google_absl//absl/strings",
91
+ "@com_google_absl//absl/types:optional",
92
+ "@com_google_googletest//:gtest",
93
+ ],
94
+ )
95
+
96
+ cc_library(
97
+ name = "quiche_platform_default_testonly",
98
+ testonly = 1,
99
+ srcs = default_platform_impl_test_support_srcs,
100
+ hdrs = default_platform_impl_test_support_hdrs,
101
+ strip_include_prefix = "common/platform/default",
102
+ deps = [
103
+ ":quiche_core",
104
+ "@com_google_absl//absl/flags:flag",
105
+ "@com_google_absl//absl/flags:parse",
106
+ "@com_google_absl//absl/flags:usage",
107
+ "@com_google_googletest//:gtest",
108
+ ],
109
+ )
110
+
111
+ proto_library(
112
+ name = "quiche_protobufs",
113
+ srcs = [
114
+ "quic/core/proto/cached_network_parameters.proto",
115
+ "quic/core/proto/crypto_server_config.proto",
116
+ "quic/core/proto/source_address_token.proto",
117
+ ],
118
+ )
119
+
120
+ cc_proto_library(
121
+ name = "quiche_protobufs_cc_proto",
122
+ deps = [":quiche_protobufs"],
123
+ )
124
+
125
+ proto_library(
126
+ name = "quiche_protobufs_testonly",
127
+ srcs = [
128
+ "quic/test_tools/send_algorithm_test_result.proto",
129
+ ],
130
+ )
131
+
132
+ cc_proto_library(
133
+ name = "quiche_protobufs_testonly_cc_proto",
134
+ deps = [":quiche_protobufs_testonly"],
135
+ )
136
+
137
+ cc_library(
138
+ name = "quiche_core",
139
+ srcs = quiche_core_srcs,
140
+ hdrs = quiche_core_hdrs,
141
+ textual_hdrs = ["http2/hpack/hpack_static_table_entries.inc"],
142
+ deps = [
143
+ ":quiche_platform_default",
144
+ ":quiche_protobufs_cc_proto",
145
+ "@boringssl//:crypto",
146
+ "@boringssl//:ssl",
147
+ "@com_google_absl//absl/algorithm:container",
148
+ "@com_google_absl//absl/base:core_headers",
149
+ "@com_google_absl//absl/container:btree",
150
+ "@com_google_absl//absl/container:flat_hash_map",
151
+ "@com_google_absl//absl/container:flat_hash_set",
152
+ "@com_google_absl//absl/container:inlined_vector",
153
+ "@com_google_absl//absl/container:node_hash_map",
154
+ "@com_google_absl//absl/hash",
155
+ "@com_google_absl//absl/memory",
156
+ "@com_google_absl//absl/numeric:int128",
157
+ "@com_google_absl//absl/strings",
158
+ "@com_google_absl//absl/strings:str_format",
159
+ "@com_google_absl//absl/types:optional",
160
+ "@com_google_absl//absl/types:span",
161
+ "@com_google_googleurl//url",
162
+ "@com_google_quic_trace//quic_trace:quic_trace_cc_proto",
163
+ "@zlib",
164
+ ],
165
+ )
166
+
167
+ cc_library(
168
+ name = "quiche_tool_support",
169
+ srcs = quiche_tool_support_srcs,
170
+ hdrs = quiche_tool_support_hdrs,
171
+ deps = [
172
+ ":quiche_core",
173
+ ":quiche_platform_default_tools",
174
+ "@boringssl//:crypto",
175
+ "@com_google_absl//absl/base:core_headers",
176
+ "@com_google_absl//absl/container:flat_hash_map",
177
+ "@com_google_absl//absl/container:flat_hash_set",
178
+ "@com_google_absl//absl/memory",
179
+ "@com_google_absl//absl/strings",
180
+ "@com_google_absl//absl/strings:str_format",
181
+ "@com_google_absl//absl/types:optional",
182
+ "@com_google_googletest//:gtest",
183
+ "@com_google_googleurl//url",
184
+ ],
185
+ )
186
+
187
+ cc_library(
188
+ name = "quiche_test_support",
189
+ testonly = 1,
190
+ srcs = quiche_test_support_srcs,
191
+ hdrs = quiche_test_support_hdrs,
192
+ deps = [
193
+ ":quiche_core",
194
+ ":quiche_platform_default_testonly",
195
+ ":quiche_protobufs_testonly_cc_proto",
196
+ ":quiche_tool_support",
197
+ "@boringssl//:crypto",
198
+ "@boringssl//:ssl",
199
+ "@com_google_absl//absl/base:core_headers",
200
+ "@com_google_absl//absl/container:flat_hash_map",
201
+ "@com_google_absl//absl/container:flat_hash_set",
202
+ "@com_google_absl//absl/memory",
203
+ "@com_google_absl//absl/strings",
204
+ "@com_google_absl//absl/strings:str_format",
205
+ "@com_google_absl//absl/types:optional",
206
+ "@com_google_googletest//:gtest",
207
+ ],
208
+ )
209
+
210
+ test_suite_from_source_list(
211
+ name = "quiche_tests",
212
+ srcs = quiche_tests_srcs,
213
+ data = glob([
214
+ "common/platform/api/testdir/**",
215
+ "quic/test_tools/quic_http_response_cache_data/**",
216
+ ]),
217
+ deps = [
218
+ ":quiche_core",
219
+ ":quiche_platform_default_testonly",
220
+ ":quiche_protobufs_testonly_cc_proto",
221
+ ":quiche_test_support",
222
+ ":quiche_tool_support",
223
+ "@boringssl//:crypto",
224
+ "@boringssl//:ssl",
225
+ "@com_google_absl//absl/algorithm:container",
226
+ "@com_google_absl//absl/base:core_headers",
227
+ "@com_google_absl//absl/container:flat_hash_map",
228
+ "@com_google_absl//absl/container:flat_hash_set",
229
+ "@com_google_absl//absl/container:node_hash_map",
230
+ "@com_google_absl//absl/functional:bind_front",
231
+ "@com_google_absl//absl/hash",
232
+ "@com_google_absl//absl/memory",
233
+ "@com_google_absl//absl/numeric:int128",
234
+ "@com_google_absl//absl/strings",
235
+ "@com_google_absl//absl/strings:str_format",
236
+ "@com_google_absl//absl/types:optional",
237
+ "@com_google_googletest//:gtest_main",
238
+ ],
239
+ )
240
+
241
+ # TODO(vasilvv): make a rule that generates cc_binary rules for all _bin targets.
242
+ cc_binary(
243
+ name = "quic_packet_printer",
244
+ srcs = ["quic/tools/quic_packet_printer_bin.cc"],
245
+ deps = [
246
+ ":quiche_core",
247
+ ":quiche_tool_support",
248
+ "@com_google_absl//absl/strings",
249
+ ],
250
+ )
251
+
252
+ # Indicate that QUICHE APIs are explicitly unstable by providing only
253
+ # appropriately named aliases as publicly visible targets.
254
+ alias(
255
+ name = "quiche_unstable_api",
256
+ actual = ":quiche_core",
257
+ visibility = ["//visibility:public"],
258
+ )
259
+
260
+ alias(
261
+ name = "quiche_unstable_api_tool_support",
262
+ actual = ":quiche_tool_support",
263
+ visibility = ["//visibility:public"],
264
+ )
265
+
266
+ alias(
267
+ name = "quiche_unstable_api_test_support",
268
+ actual = ":quiche_test_support",
269
+ visibility = ["//visibility:public"],
270
+ )
@@ -2,7 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- #include "quiche/common/balsa/balsa_enums.h"
5
+ #include "quiche/balsa/balsa_enums.h"
6
6
 
7
7
  namespace quiche {
8
8
 
@@ -40,8 +40,8 @@ const char* BalsaFrameEnums::ParseStateToString(
40
40
  const char* BalsaFrameEnums::ErrorCodeToString(
41
41
  BalsaFrameEnums::ErrorCode error_code) {
42
42
  switch (error_code) {
43
- case NO_ERROR:
44
- return "NO_ERROR";
43
+ case BALSA_NO_ERROR:
44
+ return "BALSA_NO_ERROR";
45
45
  case NO_STATUS_LINE_IN_RESPONSE:
46
46
  return "NO_STATUS_LINE_IN_RESPONSE";
47
47
  case NO_REQUEST_LINE_IN_REQUEST:
@@ -2,15 +2,15 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- #ifndef QUICHE_COMMON_BALSA_BALSA_ENUMS_H_
6
- #define QUICHE_COMMON_BALSA_BALSA_ENUMS_H_
5
+ #ifndef QUICHE_BALSA_BALSA_ENUMS_H_
6
+ #define QUICHE_BALSA_BALSA_ENUMS_H_
7
7
 
8
8
  #include "quiche/common/platform/api/quiche_export.h"
9
9
 
10
10
  namespace quiche {
11
11
 
12
12
  struct QUICHE_EXPORT_PRIVATE BalsaFrameEnums {
13
- enum ParseState {
13
+ enum ParseState : int {
14
14
  ERROR,
15
15
  READING_HEADER_AND_FIRSTLINE,
16
16
  READING_CHUNK_LENGTH,
@@ -25,10 +25,10 @@ struct QUICHE_EXPORT_PRIVATE BalsaFrameEnums {
25
25
  NUM_STATES,
26
26
  };
27
27
 
28
- enum ErrorCode {
28
+ enum ErrorCode : int {
29
29
  // A sentinel value for convenience, none of the callbacks should ever see
30
30
  // this error code.
31
- NO_ERROR = 0,
31
+ BALSA_NO_ERROR = 0,
32
32
 
33
33
  // Header parsing errors
34
34
  // Note that adding one to many of the REQUEST errors yields the
@@ -113,7 +113,7 @@ struct QUICHE_EXPORT_PRIVATE BalsaFrameEnums {
113
113
  };
114
114
 
115
115
  struct QUICHE_EXPORT_PRIVATE BalsaHeadersEnums {
116
- enum ContentLengthStatus {
116
+ enum ContentLengthStatus : int {
117
117
  INVALID_CONTENT_LENGTH,
118
118
  CONTENT_LENGTH_OVERFLOW,
119
119
  NO_CONTENT_LENGTH,
@@ -123,4 +123,4 @@ struct QUICHE_EXPORT_PRIVATE BalsaHeadersEnums {
123
123
 
124
124
  } // namespace quiche
125
125
 
126
- #endif // QUICHE_COMMON_BALSA_BALSA_ENUMS_H_
126
+ #endif // QUICHE_BALSA_BALSA_ENUMS_H_
@@ -2,7 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- #include "quiche/common/balsa/balsa_frame.h"
5
+ #include "quiche/balsa/balsa_frame.h"
6
6
 
7
7
  #include <algorithm>
8
8
  #include <array>
@@ -17,12 +17,27 @@
17
17
  #include "absl/strings/match.h"
18
18
  #include "absl/strings/numbers.h"
19
19
  #include "absl/strings/string_view.h"
20
- #include "quiche/common/balsa/balsa_enums.h"
21
- #include "quiche/common/balsa/balsa_headers.h"
22
- #include "quiche/common/balsa/balsa_visitor_interface.h"
23
- #include "quiche/common/balsa/header_properties.h"
20
+ #include "quiche/balsa/balsa_enums.h"
21
+ #include "quiche/balsa/balsa_headers.h"
22
+ #include "quiche/balsa/balsa_visitor_interface.h"
23
+ #include "quiche/balsa/header_properties.h"
24
24
  #include "quiche/common/platform/api/quiche_logging.h"
25
25
 
26
+ // When comparing characters (other than == and !=), cast to unsigned char
27
+ // to make sure values above 127 rank as expected, even on platforms where char
28
+ // is signed and thus such values are represented as negative numbers before the
29
+ // cast.
30
+ #define CHAR_LT(a, b) \
31
+ (static_cast<unsigned char>(a) < static_cast<unsigned char>(b))
32
+ #define CHAR_LE(a, b) \
33
+ (static_cast<unsigned char>(a) <= static_cast<unsigned char>(b))
34
+ #define CHAR_GT(a, b) \
35
+ (static_cast<unsigned char>(a) > static_cast<unsigned char>(b))
36
+ #define CHAR_GE(a, b) \
37
+ (static_cast<unsigned char>(a) >= static_cast<unsigned char>(b))
38
+ #define QUICHE_DCHECK_CHAR_GE(a, b) \
39
+ QUICHE_DCHECK_GE(static_cast<unsigned char>(a), static_cast<unsigned char>(b))
40
+
26
41
  namespace quiche {
27
42
 
28
43
  namespace {
@@ -53,7 +68,7 @@ void BalsaFrame::Reset() {
53
68
  last_slash_n_idx_ = 0;
54
69
  term_chars_ = 0;
55
70
  parse_state_ = BalsaFrameEnums::READING_HEADER_AND_FIRSTLINE;
56
- last_error_ = BalsaFrameEnums::NO_ERROR;
71
+ last_error_ = BalsaFrameEnums::BALSA_NO_ERROR;
57
72
  invalid_chars_.clear();
58
73
  lines_.clear();
59
74
  if (continue_headers_ != nullptr) {
@@ -88,11 +103,11 @@ inline const char* ParseOneIsland(const char* current, const char* begin,
88
103
  const char* end, size_t* first_whitespace,
89
104
  size_t* first_nonwhite) {
90
105
  *first_whitespace = current - begin;
91
- while (current < end && *current <= ' ') {
106
+ while (current < end && CHAR_LE(*current, ' ')) {
92
107
  ++current;
93
108
  }
94
109
  *first_nonwhite = current - begin;
95
- while (current<end&& * current> ' ') {
110
+ while (current < end && CHAR_GT(*current, ' ')) {
96
111
  ++current;
97
112
  }
98
113
  return current;
@@ -151,14 +166,14 @@ bool ParseHTTPFirstLine(const char* begin, const char* end, bool is_request,
151
166
 
152
167
  // Clean up any trailing whitespace that comes after the third island
153
168
  const char* last = end;
154
- while (current <= last && *last <= ' ') {
169
+ while (current <= last && CHAR_LE(*last, ' ')) {
155
170
  --last;
156
171
  }
157
172
  headers->whitespace_4_idx_ = last - begin + 1;
158
173
 
159
174
  // Either the passed-in line is empty, or it starts with a non-whitespace
160
175
  // character.
161
- QUICHE_DCHECK(begin == end || *begin > ' ');
176
+ QUICHE_DCHECK(begin == end || static_cast<unsigned char>(*begin) > ' ');
162
177
 
163
178
  QUICHE_DCHECK_EQ(0u, headers->whitespace_1_idx_);
164
179
  QUICHE_DCHECK_EQ(0u, headers->non_whitespace_1_idx_);
@@ -184,7 +199,7 @@ bool ParseHTTPFirstLine(const char* begin, const char* end, bool is_request,
184
199
  }
185
200
  }
186
201
  if (headers->whitespace_3_idx_ == headers->non_whitespace_3_idx_) {
187
- if (*error_code == BalsaFrameEnums::NO_ERROR) {
202
+ if (*error_code == BalsaFrameEnums::BALSA_NO_ERROR) {
188
203
  // FAILED_TO_FIND_WS_AFTER_REQUEST_METHOD for request
189
204
  // FAILED_TO_FIND_WS_AFTER_RESPONSE_VERSION for response
190
205
  *error_code = static_cast<BalsaFrameEnums::ErrorCode>(
@@ -268,13 +283,13 @@ void BalsaFrame::CleanUpKeyValueWhitespace(
268
283
  QUICHE_DCHECK_LT(colon_loc, line_end);
269
284
  QUICHE_DCHECK_EQ(':', *colon_loc);
270
285
  QUICHE_DCHECK_EQ(':', *current);
271
- QUICHE_DCHECK_GE(' ', *line_end)
286
+ QUICHE_DCHECK_CHAR_GE(' ', *line_end)
272
287
  << "\"" << std::string(line_begin, line_end) << "\"";
273
288
 
274
289
  // TODO(fenix): Investigate whether or not the bounds tests in the
275
290
  // while loops here are redundant, and if so, remove them.
276
291
  --current;
277
- while (current > line_begin && *current <= ' ') {
292
+ while (current > line_begin && CHAR_LE(*current, ' ')) {
278
293
  --current;
279
294
  }
280
295
  current += static_cast<int>(current != colon_loc);
@@ -283,7 +298,7 @@ void BalsaFrame::CleanUpKeyValueWhitespace(
283
298
  current = colon_loc;
284
299
  QUICHE_DCHECK_EQ(':', *current);
285
300
  ++current;
286
- while (current < line_end && *current <= ' ') {
301
+ while (current < line_end && CHAR_LE(*current, ' ')) {
287
302
  ++current;
288
303
  }
289
304
  current_header_line->value_begin_idx = current - stream_begin;
@@ -323,7 +338,7 @@ bool BalsaFrame::FindColonsAndParseIntoKeyValue(const Lines& lines,
323
338
  // "\r\n", etc -within- the line (and not just at the end of it).
324
339
  for (++i; i < lines_size_m1; ++i) {
325
340
  const char c = *(stream_begin + lines[i].first);
326
- if (c > ' ') {
341
+ if (CHAR_GT(c, ' ')) {
327
342
  // Not a continuation, so stop. Note that if the 'original' i = 1,
328
343
  // and the next line is not a continuation, we'll end up with i = 2
329
344
  // when we break. This handles the incrementing of i for the outer
@@ -355,11 +370,11 @@ bool BalsaFrame::FindColonsAndParseIntoKeyValue(const Lines& lines,
355
370
  --line_end;
356
371
  QUICHE_DCHECK_EQ('\n', *line_end)
357
372
  << "\"" << std::string(line_begin, line_end) << "\"";
358
- while (*line_end <= ' ' && line_end > line_begin) {
373
+ while (CHAR_LE(*line_end, ' ') && line_end > line_begin) {
359
374
  --line_end;
360
375
  }
361
376
  ++line_end;
362
- QUICHE_DCHECK_GE(' ', *line_end);
377
+ QUICHE_DCHECK_CHAR_GE(' ', *line_end);
363
378
  QUICHE_DCHECK_LT(line_begin, line_end);
364
379
 
365
380
  // We use '0' for the block idx, because we're always writing to the first
@@ -731,7 +746,7 @@ size_t BalsaFrame::ProcessHeaders(const char* message_start,
731
746
  do {
732
747
  const char c = *message_current;
733
748
  if (c != '\r' && c != '\n') {
734
- if (c <= ' ') {
749
+ if (CHAR_LE(c, ' ')) {
735
750
  HandleError(BalsaFrameEnums::NO_REQUEST_LINE_IN_REQUEST);
736
751
  return message_current - original_message_start;
737
752
  }
@@ -1294,3 +1309,9 @@ const int32_t BalsaFrame::kValidTerm2;
1294
1309
  const int32_t BalsaFrame::kValidTerm2Mask;
1295
1310
 
1296
1311
  } // namespace quiche
1312
+
1313
+ #undef CHAR_LT
1314
+ #undef CHAR_LE
1315
+ #undef CHAR_GT
1316
+ #undef CHAR_GE
1317
+ #undef QUICHE_DCHECK_CHAR_GE
@@ -2,20 +2,21 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- #ifndef QUICHE_COMMON_BALSA_BALSA_FRAME_H_
6
- #define QUICHE_COMMON_BALSA_BALSA_FRAME_H_
5
+ #ifndef QUICHE_BALSA_BALSA_FRAME_H_
6
+ #define QUICHE_BALSA_BALSA_FRAME_H_
7
7
 
8
8
  #include <cstddef>
9
9
  #include <cstdint>
10
10
  #include <utility>
11
11
  #include <vector>
12
12
 
13
- #include "quiche/common/balsa/balsa_enums.h"
14
- #include "quiche/common/balsa/balsa_headers.h"
15
- #include "quiche/common/balsa/balsa_visitor_interface.h"
16
- #include "quiche/common/balsa/framer_interface.h"
17
- #include "quiche/common/balsa/http_validation_policy.h"
18
- #include "quiche/common/balsa/noop_balsa_visitor.h"
13
+ #include "absl/container/flat_hash_map.h"
14
+ #include "quiche/balsa/balsa_enums.h"
15
+ #include "quiche/balsa/balsa_headers.h"
16
+ #include "quiche/balsa/balsa_visitor_interface.h"
17
+ #include "quiche/balsa/framer_interface.h"
18
+ #include "quiche/balsa/http_validation_policy.h"
19
+ #include "quiche/balsa/noop_balsa_visitor.h"
19
20
  #include "quiche/common/platform/api/quiche_bug_tracker.h"
20
21
  #include "quiche/common/platform/api/quiche_export.h"
21
22
 
@@ -60,7 +61,7 @@ class QUICHE_EXPORT_PRIVATE BalsaFrame : public FramerInterface {
60
61
  last_slash_n_idx_(0),
61
62
  term_chars_(0),
62
63
  parse_state_(BalsaFrameEnums::READING_HEADER_AND_FIRSTLINE),
63
- last_error_(BalsaFrameEnums::NO_ERROR),
64
+ last_error_(BalsaFrameEnums::BALSA_NO_ERROR),
64
65
  continue_headers_(nullptr),
65
66
  headers_(nullptr),
66
67
  start_of_trailer_line_(0),
@@ -311,4 +312,4 @@ class QUICHE_EXPORT_PRIVATE BalsaFrame : public FramerInterface {
311
312
 
312
313
  } // namespace quiche
313
314
 
314
- #endif // QUICHE_COMMON_BALSA_BALSA_FRAME_H_
315
+ #endif // QUICHE_BALSA_BALSA_FRAME_H_