@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
@@ -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 <stdlib.h>
8
8
 
@@ -15,20 +15,21 @@
15
15
  #include <utility>
16
16
  #include <vector>
17
17
 
18
- #include "absl/flags/flag.h"
19
18
  #include "absl/strings/escaping.h"
20
19
  #include "absl/strings/numbers.h"
21
20
  #include "absl/strings/str_cat.h"
22
21
  #include "absl/strings/str_format.h"
23
22
  #include "absl/strings/str_replace.h"
24
23
  #include "absl/strings/string_view.h"
25
- #include "quiche/common/balsa/balsa_enums.h"
26
- #include "quiche/common/balsa/balsa_headers.h"
27
- #include "quiche/common/balsa/balsa_visitor_interface.h"
28
- #include "quiche/common/balsa/http_validation_policy.h"
29
- #include "quiche/common/balsa/noop_balsa_visitor.h"
30
- #include "quiche/common/balsa/simple_buffer.h"
24
+ #include "quiche/balsa/balsa_enums.h"
25
+ #include "quiche/balsa/balsa_headers.h"
26
+ #include "quiche/balsa/balsa_visitor_interface.h"
27
+ #include "quiche/balsa/http_validation_policy.h"
28
+ #include "quiche/balsa/noop_balsa_visitor.h"
29
+ #include "quiche/balsa/simple_buffer.h"
30
+ #include "quiche/common/platform/api/quiche_command_line_flags.h"
31
31
  #include "quiche/common/platform/api/quiche_expect_bug.h"
32
+ #include "quiche/common/platform/api/quiche_flags.h"
32
33
  #include "quiche/common/platform/api/quiche_logging.h"
33
34
  #include "quiche/common/platform/api/quiche_test.h"
34
35
 
@@ -43,9 +44,10 @@ using testing::Range;
43
44
  using testing::StrEq;
44
45
  using testing::StrictMock;
45
46
 
46
- ABSL_FLAG(std::string, randseed, "",
47
- "This is the seed for Pseudo-random number"
48
- " generator used when generating random messages for unittests");
47
+ DEFINE_QUICHE_COMMAND_LINE_FLAG(
48
+ std::string, randseed, "",
49
+ "This is the seed for Pseudo-random number"
50
+ " generator used when generating random messages for unittests");
49
51
 
50
52
  namespace quiche {
51
53
 
@@ -880,7 +882,7 @@ void WhitespaceHeaderTestHelper(
880
882
  SCOPED_TRACE(EscapeString(message));
881
883
  size_t bytes_consumed = framer.ProcessInput(message.data(), message.size());
882
884
  EXPECT_EQ(message.size(), bytes_consumed);
883
- if (expected_error_code == BalsaFrameEnums::NO_ERROR) {
885
+ if (expected_error_code == BalsaFrameEnums::BALSA_NO_ERROR) {
884
886
  EXPECT_EQ(false, framer.Error());
885
887
  } else {
886
888
  EXPECT_EQ(true, framer.Error());
@@ -910,13 +912,13 @@ TEST(HTTPBalsaFrame, WhitespaceInRequestsProcessedProperly) {
910
912
  "test: test\r\n"
911
913
  " continued\r\n"
912
914
  "\r\n",
913
- true, BalsaFrameEnums::NO_ERROR);
915
+ true, BalsaFrameEnums::BALSA_NO_ERROR);
914
916
  WhitespaceHeaderTestHelper(
915
917
  "GET / HTTP/1.1\r\n"
916
918
  "test: test\r\n"
917
919
  " \r\n"
918
920
  "\r\n",
919
- true, BalsaFrameEnums::NO_ERROR);
921
+ true, BalsaFrameEnums::BALSA_NO_ERROR);
920
922
  }
921
923
 
922
924
  TEST(HTTPBalsaFrame, WhitespaceInResponsesProcessedProperly) {
@@ -936,14 +938,14 @@ TEST(HTTPBalsaFrame, WhitespaceInResponsesProcessedProperly) {
936
938
  " continued\r\n"
937
939
  "Content-Length: 0\r\n"
938
940
  "\r\n",
939
- false, BalsaFrameEnums::NO_ERROR);
941
+ false, BalsaFrameEnums::BALSA_NO_ERROR);
940
942
  WhitespaceHeaderTestHelper(
941
943
  "HTTP/1.0 200 Reason\r\n"
942
944
  "test: test\r\n"
943
945
  " \r\n"
944
946
  "Content-Length: 0\r\n"
945
947
  "\r\n",
946
- false, BalsaFrameEnums::NO_ERROR);
948
+ false, BalsaFrameEnums::BALSA_NO_ERROR);
947
949
  }
948
950
 
949
951
  TEST_F(HTTPBalsaFrameTest, VisitorInvokedProperlyForTrivialRequest) {
@@ -1194,7 +1196,7 @@ TEST_F(HTTPBalsaFrameTest, NothingBadHappensWhenNoVisitorIsAssigned) {
1194
1196
  EXPECT_EQ(trailer.size(),
1195
1197
  balsa_frame_.ProcessInput(trailer.data(), trailer.size()));
1196
1198
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
1197
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
1199
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
1198
1200
  }
1199
1201
 
1200
1202
  TEST_F(HTTPBalsaFrameTest, NothingBadHappensWhenNoVisitorIsAssignedInResponse) {
@@ -1223,7 +1225,7 @@ TEST_F(HTTPBalsaFrameTest, NothingBadHappensWhenNoVisitorIsAssignedInResponse) {
1223
1225
  EXPECT_EQ(trailer.size(),
1224
1226
  balsa_frame_.ProcessInput(trailer.data(), trailer.size()));
1225
1227
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
1226
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
1228
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
1227
1229
  const absl::string_view crass = trailer_.GetHeader("crass");
1228
1230
  EXPECT_EQ("monkeys", crass);
1229
1231
  const absl::string_view funky = trailer_.GetHeader("funky");
@@ -1246,7 +1248,7 @@ TEST_F(HTTPBalsaFrameTest, TransferEncodingIdentityIsIgnored) {
1246
1248
  EXPECT_FALSE(balsa_frame_.MessageFullyRead());
1247
1249
  ASSERT_EQ(body.size(), balsa_frame_.ProcessInput(body.data(), body.size()));
1248
1250
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
1249
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
1251
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
1250
1252
  }
1251
1253
 
1252
1254
  TEST_F(HTTPBalsaFrameTest,
@@ -1274,7 +1276,7 @@ TEST_F(HTTPBalsaFrameTest,
1274
1276
  ASSERT_EQ(trailer.size(),
1275
1277
  balsa_frame_.ProcessInput(trailer.data(), trailer.size()));
1276
1278
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
1277
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
1279
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
1278
1280
  }
1279
1281
 
1280
1282
  TEST_F(HTTPBalsaFrameTest,
@@ -1305,7 +1307,7 @@ TEST_F(HTTPBalsaFrameTest,
1305
1307
  ASSERT_EQ(trailer.size(),
1306
1308
  balsa_frame_.ProcessInput(trailer.data(), trailer.size()));
1307
1309
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
1308
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
1310
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
1309
1311
  const absl::string_view crass = trailer_.GetHeader("crass");
1310
1312
  EXPECT_EQ("monkeys", crass);
1311
1313
  const absl::string_view funky = trailer_.GetHeader("funky");
@@ -1517,7 +1519,7 @@ TEST_F(HTTPBalsaFrameTest, VisitorInvokedProperlyForRequestWithContentLength) {
1517
1519
  message.size()));
1518
1520
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
1519
1521
  EXPECT_FALSE(balsa_frame_.Error());
1520
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
1522
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
1521
1523
  }
1522
1524
 
1523
1525
  TEST_F(HTTPBalsaFrameTest,
@@ -1553,7 +1555,7 @@ TEST_F(HTTPBalsaFrameTest,
1553
1555
  message.size()));
1554
1556
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
1555
1557
  EXPECT_FALSE(balsa_frame_.Error());
1556
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
1558
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
1557
1559
  }
1558
1560
 
1559
1561
  TEST_F(HTTPBalsaFrameTest,
@@ -1615,7 +1617,7 @@ TEST_F(HTTPBalsaFrameTest,
1615
1617
  message.size()));
1616
1618
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
1617
1619
  EXPECT_FALSE(balsa_frame_.Error());
1618
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
1620
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
1619
1621
 
1620
1622
  EXPECT_EQ(message_body, body_input);
1621
1623
  EXPECT_EQ(message_body_data, body_data);
@@ -1687,7 +1689,7 @@ TEST_F(HTTPBalsaFrameTest,
1687
1689
  message.size()));
1688
1690
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
1689
1691
  EXPECT_FALSE(balsa_frame_.Error());
1690
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
1692
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
1691
1693
 
1692
1694
  EXPECT_EQ(message_body, body_input);
1693
1695
  EXPECT_EQ(message_body_data, body_data);
@@ -1928,7 +1930,7 @@ TEST_F(HTTPBalsaFrameTest, VisitorInvokedProperlyForTrivialResponse) {
1928
1930
  balsa_frame_.ProcessInput(message.data(), message.size()));
1929
1931
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
1930
1932
  EXPECT_FALSE(balsa_frame_.Error());
1931
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
1933
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
1932
1934
  }
1933
1935
 
1934
1936
  TEST_F(HTTPBalsaFrameTest,
@@ -1961,7 +1963,7 @@ TEST_F(HTTPBalsaFrameTest,
1961
1963
  header_input.data(), header_input.size()));
1962
1964
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
1963
1965
  EXPECT_FALSE(balsa_frame_.Error());
1964
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
1966
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
1965
1967
  }
1966
1968
 
1967
1969
  TEST_F(HTTPBalsaFrameTest, VisitorInvokedProperlyForResponseWithBlankLines) {
@@ -1996,7 +1998,7 @@ TEST_F(HTTPBalsaFrameTest, VisitorInvokedProperlyForResponseWithBlankLines) {
1996
1998
  balsa_frame_.ProcessInput(message.data(), message.size()));
1997
1999
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
1998
2000
  EXPECT_FALSE(balsa_frame_.Error());
1999
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
2001
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
2000
2002
  }
2001
2003
 
2002
2004
  TEST_F(HTTPBalsaFrameTest, VisitorInvokedProperlyForResponseWithContentLength) {
@@ -2032,7 +2034,7 @@ TEST_F(HTTPBalsaFrameTest, VisitorInvokedProperlyForResponseWithContentLength) {
2032
2034
  message.size()));
2033
2035
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
2034
2036
  EXPECT_FALSE(balsa_frame_.Error());
2035
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
2037
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
2036
2038
  }
2037
2039
 
2038
2040
  TEST_F(HTTPBalsaFrameTest,
@@ -2091,7 +2093,7 @@ TEST_F(HTTPBalsaFrameTest,
2091
2093
  message.size()));
2092
2094
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
2093
2095
  EXPECT_FALSE(balsa_frame_.Error());
2094
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
2096
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
2095
2097
 
2096
2098
  EXPECT_EQ(message_body, body_input);
2097
2099
  EXPECT_EQ(message_body_data, body_data);
@@ -2161,7 +2163,7 @@ TEST_F(HTTPBalsaFrameTest,
2161
2163
  message.size()));
2162
2164
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
2163
2165
  EXPECT_FALSE(balsa_frame_.Error());
2164
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
2166
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
2165
2167
 
2166
2168
  EXPECT_EQ(message_body, body_input);
2167
2169
  EXPECT_EQ(message_body_data, body_data);
@@ -2236,7 +2238,7 @@ TEST_F(
2236
2238
  }
2237
2239
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
2238
2240
  EXPECT_FALSE(balsa_frame_.Error());
2239
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
2241
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
2240
2242
 
2241
2243
  EXPECT_EQ(message_body, body_input);
2242
2244
  EXPECT_EQ(message_body_data, body_data);
@@ -2249,7 +2251,7 @@ TEST_F(
2249
2251
  TEST(HTTPBalsaFrame,
2250
2252
  VisitorInvokedProperlyForResponseWithTransferEncodingAndTrailersRandom) {
2251
2253
  TestSeed seed;
2252
- seed.Initialize(absl::GetFlag(FLAGS_randseed));
2254
+ seed.Initialize(GetQuicheCommandLineFlag(FLAGS_randseed));
2253
2255
  RandomEngine rng;
2254
2256
  rng.seed(seed.GetSeed());
2255
2257
  for (int i = 0; i < 1000; ++i) {
@@ -2331,7 +2333,7 @@ TEST(HTTPBalsaFrame,
2331
2333
  EXPECT_EQ(message.size(), total_processed);
2332
2334
  EXPECT_TRUE(balsa_frame.MessageFullyRead());
2333
2335
  EXPECT_FALSE(balsa_frame.Error());
2334
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame.ErrorCode());
2336
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame.ErrorCode());
2335
2337
 
2336
2338
  EXPECT_EQ(message_body, body_input);
2337
2339
  EXPECT_EQ(message_body_data, body_data);
@@ -2403,7 +2405,7 @@ TEST_F(HTTPBalsaFrameTest, AppropriateActionTakenWhenHeadersTooLongWhenReset) {
2403
2405
  EXPECT_EQ(BalsaFrameEnums::HEADERS_TOO_LONG, balsa_frame_.ErrorCode());
2404
2406
  }
2405
2407
 
2406
- class BalsaFrameParsingTest : public testing::Test {
2408
+ class BalsaFrameParsingTest : public QuicheTest {
2407
2409
  protected:
2408
2410
  void SetUp() override {
2409
2411
  balsa_frame_.set_http_validation_policy(
@@ -2878,10 +2880,10 @@ TEST_F(HTTPBalsaFrameTest, TwoSameContentHeadersIsNotAnError) {
2878
2880
  "\r\n"
2879
2881
  "1";
2880
2882
  balsa_frame_.ProcessInput(header.data(), header.size());
2881
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
2883
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
2882
2884
  EXPECT_FALSE(balsa_frame_.Error());
2883
2885
  balsa_frame_.ProcessInput(header.data(), header.size());
2884
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
2886
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
2885
2887
  EXPECT_FALSE(balsa_frame_.Error());
2886
2888
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
2887
2889
  }
@@ -3170,7 +3172,7 @@ TEST_F(HTTPBalsaFrameTest, MultipleHeadersInTrailer) {
3170
3172
  std::map<std::string, std::string>::const_iterator iter;
3171
3173
  std::string trailer_data;
3172
3174
  TestSeed seed;
3173
- seed.Initialize(absl::GetFlag(FLAGS_randseed));
3175
+ seed.Initialize(GetQuicheCommandLineFlag(FLAGS_randseed));
3174
3176
  RandomEngine rng;
3175
3177
  rng.seed(seed.GetSeed());
3176
3178
  FakeHeaders fake_headers_in_trailer;
@@ -3223,7 +3225,7 @@ TEST_F(HTTPBalsaFrameTest, MultipleHeadersInTrailer) {
3223
3225
  trailer_data.data(), trailer_data.size()));
3224
3226
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
3225
3227
  EXPECT_FALSE(balsa_frame_.Error());
3226
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
3228
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
3227
3229
 
3228
3230
  EXPECT_EQ(chunks, body_input);
3229
3231
 
@@ -3261,7 +3263,7 @@ TEST_F(HTTPBalsaFrameTest, NothingBadHappensWithNULLTrailer) {
3261
3263
  balsa_frame_.ProcessInput(trailer.data(), trailer.size()));
3262
3264
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
3263
3265
  EXPECT_FALSE(balsa_frame_.Error());
3264
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
3266
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
3265
3267
  }
3266
3268
 
3267
3269
  // Test Reset() correctly resets trailer related states.
@@ -3291,7 +3293,7 @@ TEST_F(HTTPBalsaFrameTest, FrameAndResetAndFrameAgain) {
3291
3293
  balsa_frame_.ProcessInput(trailer.data(), trailer.size()));
3292
3294
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
3293
3295
  EXPECT_FALSE(balsa_frame_.Error());
3294
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
3296
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
3295
3297
 
3296
3298
  absl::string_view value = trailer_.GetHeader("k");
3297
3299
  EXPECT_EQ("v", value);
@@ -3319,7 +3321,7 @@ TEST_F(HTTPBalsaFrameTest, FrameAndResetAndFrameAgain) {
3319
3321
  balsa_frame_.ProcessInput(trailer.data(), trailer.size()));
3320
3322
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
3321
3323
  EXPECT_FALSE(balsa_frame_.Error());
3322
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
3324
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
3323
3325
 
3324
3326
  value = trailer_.GetHeader("k");
3325
3327
  EXPECT_TRUE(value.empty());
@@ -3482,31 +3484,33 @@ TEST_F(HTTPBalsaFrameTest, InvalidCharsAreCounted) {
3482
3484
  // Test gibberish in headers and trailer. GFE does not crash but garbage in
3483
3485
  // garbage out.
3484
3486
  TEST_F(HTTPBalsaFrameTest, GibberishInHeadersAndTrailer) {
3485
- const char kGibberish1[] = {138, 175, 233, 0};
3486
- const char kGibberish2[] = {'?', '?', 128, 255, 129, 254, 0};
3487
+ // Use static_cast<char> for values exceeding SCHAR_MAX to make sure this
3488
+ // compiles on platforms where char is signed.
3489
+ const char kGibberish1[] = {static_cast<char>(138), static_cast<char>(175),
3490
+ static_cast<char>(233), 0};
3491
+ const char kGibberish2[] = {'?',
3492
+ '?',
3493
+ static_cast<char>(128),
3494
+ static_cast<char>(255),
3495
+ static_cast<char>(129),
3496
+ static_cast<char>(254),
3497
+ 0};
3487
3498
  const char kGibberish3[] = "foo: bar : eeep : baz";
3488
3499
 
3489
- std::string gibberish_headers;
3490
- gibberish_headers += kGibberish1;
3491
- gibberish_headers += ":";
3492
- gibberish_headers += kGibberish2;
3493
- gibberish_headers += "\r\n";
3494
- gibberish_headers += kGibberish3;
3495
- gibberish_headers += "\r\n";
3500
+ std::string gibberish_headers =
3501
+ absl::StrCat(kGibberish1, ":", kGibberish2, "\r\n", kGibberish3, "\r\n");
3496
3502
 
3497
- std::string headers =
3503
+ std::string headers = absl::StrCat(
3498
3504
  "HTTP/1.1 200 OK\r\n"
3499
- "transfer-encoding: chunked\r\n";
3500
- headers += gibberish_headers;
3501
- headers += "\r\n";
3505
+ "transfer-encoding: chunked\r\n",
3506
+ gibberish_headers, "\r\n");
3502
3507
 
3503
3508
  std::string chunks =
3504
3509
  "3\r\n"
3505
3510
  "123\r\n"
3506
3511
  "0\r\n";
3507
- std::string trailer = "k: v\n";
3508
- trailer += gibberish_headers;
3509
- trailer += "\n";
3512
+
3513
+ std::string trailer = absl::StrCat("k: v\n", gibberish_headers, "\n");
3510
3514
 
3511
3515
  balsa_frame_.set_is_request(false);
3512
3516
  balsa_frame_.set_balsa_trailer(&trailer_);
@@ -3520,7 +3524,7 @@ TEST_F(HTTPBalsaFrameTest, GibberishInHeadersAndTrailer) {
3520
3524
  balsa_frame_.ProcessInput(trailer.data(), trailer.size()));
3521
3525
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
3522
3526
  EXPECT_FALSE(balsa_frame_.Error());
3523
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
3527
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
3524
3528
 
3525
3529
  // Transfer-encoding can be multi-valued, so GetHeader does not work.
3526
3530
  EXPECT_TRUE(headers_.transfer_encoding_is_chunked());
@@ -3608,7 +3612,7 @@ TEST_F(HTTPBalsaFrameTest,
3608
3612
  balsa_frame_.ProcessInput(trailer.data(), trailer.size()));
3609
3613
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
3610
3614
  EXPECT_FALSE(balsa_frame_.Error());
3611
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
3615
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
3612
3616
  }
3613
3617
 
3614
3618
  // Handle two sets of headers when set up properly and the first is 100
@@ -3636,7 +3640,7 @@ TEST_F(HTTPBalsaFrameTest, Support100Continue) {
3636
3640
  ASSERT_EQ(body.size(), balsa_frame_.ProcessInput(body.data(), body.size()));
3637
3641
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
3638
3642
  EXPECT_FALSE(balsa_frame_.Error());
3639
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
3643
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
3640
3644
  }
3641
3645
 
3642
3646
  // Handle two sets of headers when set up properly and the first is 100
@@ -3664,7 +3668,7 @@ TEST_F(HTTPBalsaFrameTest, Support100Continue401Unauthorized) {
3664
3668
  ASSERT_EQ(body.size(), balsa_frame_.ProcessInput(body.data(), body.size()));
3665
3669
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
3666
3670
  EXPECT_FALSE(balsa_frame_.Error());
3667
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
3671
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
3668
3672
  }
3669
3673
 
3670
3674
  TEST_F(HTTPBalsaFrameTest, Support100ContinueRunTogether) {
@@ -3693,7 +3697,7 @@ TEST_F(HTTPBalsaFrameTest, Support100ContinueRunTogether) {
3693
3697
  ASSERT_EQ(body.size(), balsa_frame_.ProcessInput(body.data(), body.size()));
3694
3698
  EXPECT_TRUE(balsa_frame_.MessageFullyRead());
3695
3699
  EXPECT_FALSE(balsa_frame_.Error());
3696
- EXPECT_EQ(BalsaFrameEnums::NO_ERROR, balsa_frame_.ErrorCode());
3700
+ EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
3697
3701
  }
3698
3702
 
3699
3703
  } // namespace
@@ -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_headers.h"
5
+ #include "quiche/balsa/balsa_headers.h"
6
6
 
7
7
  #include <sys/types.h>
8
8
 
@@ -19,8 +19,8 @@
19
19
  #include "absl/strings/str_format.h"
20
20
  #include "absl/strings/str_join.h"
21
21
  #include "absl/strings/string_view.h"
22
- #include "quiche/common/balsa/balsa_enums.h"
23
- #include "quiche/common/balsa/header_properties.h"
22
+ #include "quiche/balsa/balsa_enums.h"
23
+ #include "quiche/balsa/header_properties.h"
24
24
  #include "quiche/common/platform/api/quiche_header_policy.h"
25
25
  #include "quiche/common/platform/api/quiche_logging.h"
26
26
 
@@ -182,8 +182,12 @@ void BalsaHeaders::ParseTokenList(absl::string_view header_value,
182
182
  const char* start = header_value.begin();
183
183
  const char* end = header_value.end();
184
184
  while (true) {
185
+ // Cast `*start` to unsigned char to make values above 127 rank as expected
186
+ // on platforms with signed char, where such values are represented as
187
+ // negative numbers before the cast.
188
+
185
189
  // search for first nonwhitespace, non separator char.
186
- while (*start == ',' || *start <= ' ') {
190
+ while (*start == ',' || static_cast<unsigned char>(*start) <= ' ') {
187
191
  ++start;
188
192
  if (start == end) {
189
193
  return;
@@ -193,7 +197,7 @@ void BalsaHeaders::ParseTokenList(absl::string_view header_value,
193
197
  const char* nws = start;
194
198
 
195
199
  // search for next whitspace or separator char.
196
- while (*start != ',' && *start > ' ') {
200
+ while (*start != ',' && static_cast<unsigned char>(*start) > ' ') {
197
201
  ++start;
198
202
  if (start == end) {
199
203
  if (nws != start) {
@@ -784,13 +788,10 @@ size_t BalsaHeaders::RemoveValue(absl::string_view key,
784
788
  bool found = absl::StartsWith(values, needle);
785
789
 
786
790
  // Find the entirety of this value (including trailing comma if existent).
787
- bool comma_found = false;
788
- size_t cur_size = 0;
789
-
790
- const size_t next_comma =
791
- values.find(',', /* pos = */ found ? needle.size() : 0);
792
- comma_found = next_comma != absl::string_view::npos;
793
- cur_size = (comma_found ? next_comma + 1 : values.size());
791
+ const size_t next_comma =
792
+ values.find(',', /* pos = */ (found ? needle.size() : 0));
793
+ const bool comma_found = next_comma != absl::string_view::npos;
794
+ const size_t cur_size = (comma_found ? next_comma + 1 : values.size());
794
795
 
795
796
  // Make sure that our prefix match is a full match.
796
797
  if (found && cur_size != needle.size()) {
@@ -4,8 +4,8 @@
4
4
 
5
5
  // A lightweight implementation for storing HTTP headers.
6
6
 
7
- #ifndef QUICHE_COMMON_BALSA_BALSA_HEADERS_H_
8
- #define QUICHE_COMMON_BALSA_BALSA_HEADERS_H_
7
+ #ifndef QUICHE_BALSA_BALSA_HEADERS_H_
8
+ #define QUICHE_BALSA_BALSA_HEADERS_H_
9
9
 
10
10
  #include <cstddef>
11
11
  #include <cstring>
@@ -17,14 +17,16 @@
17
17
  #include <utility>
18
18
  #include <vector>
19
19
 
20
+ #include "absl/container/flat_hash_map.h"
21
+ #include "absl/container/flat_hash_set.h"
20
22
  #include "absl/memory/memory.h"
21
23
  #include "absl/strings/ascii.h"
22
24
  #include "absl/strings/match.h"
23
25
  #include "absl/strings/string_view.h"
24
26
  #include "absl/types/optional.h"
25
- #include "quiche/common/balsa/balsa_enums.h"
26
- #include "quiche/common/balsa/header_api.h"
27
- #include "quiche/common/balsa/standard_header_map.h"
27
+ #include "quiche/balsa/balsa_enums.h"
28
+ #include "quiche/balsa/header_api.h"
29
+ #include "quiche/balsa/standard_header_map.h"
28
30
  #include "quiche/common/platform/api/quiche_bug_tracker.h"
29
31
  #include "quiche/common/platform/api/quiche_export.h"
30
32
  #include "quiche/common/platform/api/quiche_logging.h"
@@ -517,6 +519,9 @@ class QUICHE_EXPORT_PRIVATE BalsaHeaders : public HeaderApi {
517
519
  // Returns the value corresponding to the given header key. Returns an empty
518
520
  // string if the header key does not exist. For headers that may consist of
519
521
  // multiple lines, use GetAllOfHeader() instead.
522
+ // Make the QuicheLowerCaseString overload visible,
523
+ // and only override the absl::string_view one.
524
+ using HeaderApi::GetHeader;
520
525
  absl::string_view GetHeader(absl::string_view key) const override;
521
526
 
522
527
  // Iterates over all currently valid header lines, appending their
@@ -545,7 +550,8 @@ class QUICHE_EXPORT_PRIVATE BalsaHeaders : public HeaderApi {
545
550
  // See gfe::header_properties::IsMultivaluedHeader() for which headers
546
551
  // GFE treats as being multivalued.
547
552
 
548
- // Make all methods in this overload set visible, and override just one.
553
+ // Make the QuicheLowerCaseString overload visible,
554
+ // and only override the absl::string_view one.
549
555
  using HeaderApi::GetAllOfHeader;
550
556
  void GetAllOfHeader(absl::string_view key,
551
557
  std::vector<absl::string_view>* out) const override;
@@ -557,6 +563,9 @@ class QUICHE_EXPORT_PRIVATE BalsaHeaders : public HeaderApi {
557
563
  std::vector<absl::string_view>* out) const;
558
564
 
559
565
  // Joins all values for `key` into a comma-separated string.
566
+ // Make the QuicheLowerCaseString overload visible,
567
+ // and only override the absl::string_view one.
568
+ using HeaderApi::GetAllOfHeaderAsString;
560
569
  std::string GetAllOfHeaderAsString(absl::string_view key) const override;
561
570
 
562
571
  // Determine if a given header is present. Case-insensitive.
@@ -1337,7 +1346,6 @@ BalsaHeaders::header_lines_key_end() const {
1337
1346
  inline void BalsaHeaders::erase(const const_header_lines_iterator& it) {
1338
1347
  QUICHE_DCHECK_EQ(it.headers_, this);
1339
1348
  QUICHE_DCHECK_LT(it.idx_, header_lines_.size());
1340
- QUICHE_DCHECK_GE(it.idx_, 0u);
1341
1349
  header_lines_[it.idx_].skip = true;
1342
1350
  }
1343
1351
 
@@ -1466,4 +1474,4 @@ const IteratorType BalsaHeaders::HeaderLinesEndHelper() const {
1466
1474
 
1467
1475
  } // namespace quiche
1468
1476
 
1469
- #endif // QUICHE_COMMON_BALSA_BALSA_HEADERS_H_
1477
+ #endif // QUICHE_BALSA_BALSA_HEADERS_H_
@@ -6,7 +6,7 @@
6
6
  // tested in the balsa_frame_test as the BalsaFrame and
7
7
  // BalsaHeaders classes are fairly related.
8
8
 
9
- #include "quiche/common/balsa/balsa_headers.h"
9
+ #include "quiche/balsa/balsa_headers.h"
10
10
 
11
11
  #include <cstring>
12
12
  #include <limits>
@@ -22,12 +22,12 @@
22
22
  #include "absl/strings/str_cat.h"
23
23
  #include "absl/strings/str_format.h"
24
24
  #include "absl/strings/string_view.h"
25
- #include "quiche/common/balsa/balsa_enums.h"
26
- #include "quiche/common/balsa/balsa_frame.h"
27
- #include "quiche/common/balsa/simple_buffer.h"
25
+ #include "quiche/balsa/balsa_enums.h"
26
+ #include "quiche/balsa/balsa_frame.h"
27
+ #include "quiche/balsa/simple_buffer.h"
28
+ #include "quiche/common/platform/api/quiche_expect_bug.h"
28
29
  #include "quiche/common/platform/api/quiche_logging.h"
29
30
  #include "quiche/common/platform/api/quiche_test.h"
30
- #include "quiche/common/platform/api/quiche_test_helpers.h"
31
31
 
32
32
  using absl::make_unique;
33
33
  using testing::AnyOf;
@@ -837,11 +837,11 @@ TEST(BalsaHeaders, TestRemovingValues) {
837
837
  EXPECT_TRUE(headers.HeaderHasValue(key, value2));
838
838
  EXPECT_EQ(value, headers.GetAllOfHeaderAsString(key));
839
839
 
840
- EXPECT_EQ(1u, headers.RemoveValue(key, value2));
840
+ EXPECT_EQ(1u, headers.RemoveValue(key, value2));
841
841
 
842
- EXPECT_TRUE(headers.HeaderHasValue(key, value1));
843
- EXPECT_FALSE(headers.HeaderHasValue(key, value2));
844
- EXPECT_EQ(value1, headers.GetAllOfHeaderAsString(key));
842
+ EXPECT_TRUE(headers.HeaderHasValue(key, value1));
843
+ EXPECT_FALSE(headers.HeaderHasValue(key, value2));
844
+ EXPECT_EQ(value1, headers.GetAllOfHeaderAsString(key));
845
845
  }
846
846
 
847
847
  {
@@ -2,13 +2,13 @@
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_VISITOR_INTERFACE_H_
6
- #define QUICHE_COMMON_BALSA_BALSA_VISITOR_INTERFACE_H_
5
+ #ifndef QUICHE_BALSA_BALSA_VISITOR_INTERFACE_H_
6
+ #define QUICHE_BALSA_BALSA_VISITOR_INTERFACE_H_
7
7
 
8
8
  #include <cstddef>
9
9
 
10
10
  #include "absl/strings/string_view.h"
11
- #include "quiche/common/balsa/balsa_enums.h"
11
+ #include "quiche/balsa/balsa_enums.h"
12
12
  #include "quiche/common/platform/api/quiche_export.h"
13
13
 
14
14
  namespace quiche {
@@ -145,4 +145,4 @@ class QUICHE_EXPORT_PRIVATE BalsaVisitorInterface {
145
145
 
146
146
  } // namespace quiche
147
147
 
148
- #endif // QUICHE_COMMON_BALSA_BALSA_VISITOR_INTERFACE_H_
148
+ #endif // QUICHE_BALSA_BALSA_VISITOR_INTERFACE_H_
@@ -2,8 +2,8 @@
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_FRAMER_INTERFACE_H_
6
- #define QUICHE_COMMON_BALSA_FRAMER_INTERFACE_H_
5
+ #ifndef QUICHE_BALSA_FRAMER_INTERFACE_H_
6
+ #define QUICHE_BALSA_FRAMER_INTERFACE_H_
7
7
 
8
8
  #include <cstddef>
9
9
 
@@ -21,4 +21,4 @@ class QUICHE_EXPORT_PRIVATE FramerInterface {
21
21
 
22
22
  } // namespace quiche
23
23
 
24
- #endif // QUICHE_COMMON_BALSA_FRAMER_INTERFACE_H_
24
+ #endif // QUICHE_BALSA_FRAMER_INTERFACE_H_
@@ -2,8 +2,8 @@
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_HEADER_API_H_
6
- #define QUICHE_COMMON_BALSA_HEADER_API_H_
5
+ #ifndef QUICHE_BALSA_HEADER_API_H_
6
+ #define QUICHE_BALSA_HEADER_API_H_
7
7
 
8
8
  #include <cstddef>
9
9
  #include <functional>
@@ -271,4 +271,4 @@ class QUICHE_EXPORT_PRIVATE HeaderApi : public virtual ConstHeaderApi {
271
271
 
272
272
  } // namespace quiche
273
273
 
274
- #endif // QUICHE_COMMON_BALSA_HEADER_API_H_
274
+ #endif // QUICHE_BALSA_HEADER_API_H_
@@ -1,4 +1,4 @@
1
- #include "quiche/common/balsa/header_properties.h"
1
+ #include "quiche/balsa/header_properties.h"
2
2
 
3
3
  #include <array>
4
4
 
@@ -2,8 +2,8 @@
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_HEADER_PROPERTIES_H_
6
- #define QUICHE_COMMON_BALSA_HEADER_PROPERTIES_H_
5
+ #ifndef QUICHE_BALSA_HEADER_PROPERTIES_H_
6
+ #define QUICHE_BALSA_HEADER_PROPERTIES_H_
7
7
 
8
8
  #include <cstdint>
9
9
 
@@ -47,4 +47,4 @@ QUICHE_EXPORT_PRIVATE bool HasInvalidHeaderChars(absl::string_view value);
47
47
 
48
48
  } // namespace quiche::header_properties
49
49
 
50
- #endif // QUICHE_COMMON_BALSA_HEADER_PROPERTIES_H_
50
+ #endif // QUICHE_BALSA_HEADER_PROPERTIES_H_