Fix QUICHE Bazel build.

Fix the build files, and also a really weird compilation issue in quiche_endian.h

PiperOrigin-RevId: 475458268
diff --git a/build/source_list.bzl b/build/source_list.bzl
index 62ed564..edbefc2 100644
--- a/build/source_list.bzl
+++ b/build/source_list.bzl
@@ -704,11 +704,8 @@
     "quic/tools/fake_proof_verifier.h",
     "quic/tools/quic_backend_response.h",
     "quic/tools/quic_client_base.h",
-    "quic/tools/quic_client_default_network_helper.h",
-    "quic/tools/quic_default_client.h",
     "quic/tools/quic_memory_cache_backend.h",
     "quic/tools/quic_name_lookup.h",
-    "quic/tools/quic_server_factory.h",
     "quic/tools/quic_simple_client_session.h",
     "quic/tools/quic_simple_client_stream.h",
     "quic/tools/quic_simple_crypto_server_stream_helper.h",
@@ -729,11 +726,8 @@
     "quic/tools/connect_tunnel.cc",
     "quic/tools/quic_backend_response.cc",
     "quic/tools/quic_client_base.cc",
-    "quic/tools/quic_client_default_network_helper.cc",
-    "quic/tools/quic_default_client.cc",
     "quic/tools/quic_memory_cache_backend.cc",
     "quic/tools/quic_name_lookup.cc",
-    "quic/tools/quic_server_factory.cc",
     "quic/tools/quic_simple_client_session.cc",
     "quic/tools/quic_simple_client_stream.cc",
     "quic/tools/quic_simple_crypto_server_stream_helper.cc",
@@ -977,6 +971,8 @@
     "quic/masque/masque_server_session.h",
     "quic/masque/masque_utils.h",
     "quic/platform/api/quic_udp_socket_platform_api.h",
+    "quic/tools/quic_client_default_network_helper.h",
+    "quic/tools/quic_default_client.h",
     "quic/tools/quic_server.h",
 ]
 epoll_tool_support_srcs = [
@@ -1004,6 +1000,8 @@
     "quic/masque/masque_server_backend.cc",
     "quic/masque/masque_server_session.cc",
     "quic/masque/masque_utils.cc",
+    "quic/tools/quic_client_default_network_helper.cc",
+    "quic/tools/quic_default_client.cc",
     "quic/tools/quic_server.cc",
 ]
 epoll_test_support_hdrs = [
@@ -1104,7 +1102,6 @@
     "http2/test_tools/http2_frame_builder_test.cc",
     "http2/test_tools/http2_random_test.cc",
     "http2/test_tools/random_decoder_test_base_test.cc",
-    "quic/bindings/quic_libevent_test.cc",
     "quic/core/congestion_control/bandwidth_sampler_test.cc",
     "quic/core/congestion_control/bbr2_simulator_test.cc",
     "quic/core/congestion_control/bbr_sender_test.cc",
@@ -1258,7 +1255,6 @@
     "quic/test_tools/simulator/quic_endpoint_test.cc",
     "quic/test_tools/simulator/simulator_test.cc",
     "quic/tools/connect_tunnel_test.cc",
-    "quic/tools/quic_default_client_test.cc",
     "quic/tools/quic_memory_cache_backend_test.cc",
     "quic/tools/quic_tcp_like_trace_converter_test.cc",
     "quic/tools/simple_ticket_crypter_test.cc",
@@ -1286,6 +1282,7 @@
 
 ]
 epoll_tests_srcs = [
+    "quic/bindings/quic_libevent_test.cc",
     "quic/core/batch_writer/quic_batch_writer_buffer_test.cc",
     "quic/core/batch_writer/quic_batch_writer_test.cc",
     "quic/core/batch_writer/quic_gso_batch_writer_test.cc",
@@ -1300,6 +1297,7 @@
     "quic/core/io/quic_poll_event_loop_test.cc",
     "quic/core/io/socket_test.cc",
     "quic/core/quic_linux_socket_utils_test.cc",
+    "quic/tools/quic_default_client_test.cc",
     "quic/tools/quic_server_test.cc",
     "quic/tools/quic_simple_server_session_test.cc",
     "quic/tools/quic_simple_server_stream_test.cc",
@@ -1323,6 +1321,7 @@
 ]
 cli_tools_hdrs = [
     "quic/tools/quic_epoll_client_factory.h",
+    "quic/tools/quic_server_factory.h",
     "quic/tools/quic_toy_client.h",
     "quic/tools/quic_toy_server.h",
 ]
@@ -1337,6 +1336,7 @@
     "quic/tools/quic_packet_printer_bin.cc",
     "quic/tools/quic_reject_reason_decoder_bin.cc",
     "quic/tools/quic_server_bin.cc",
+    "quic/tools/quic_server_factory.cc",
     "quic/tools/quic_toy_client.cc",
     "quic/tools/quic_toy_server.cc",
 ]
diff --git a/build/source_list.gni b/build/source_list.gni
index 49da9aa..b30c93f 100644
--- a/build/source_list.gni
+++ b/build/source_list.gni
@@ -704,11 +704,8 @@
     "src/quiche/quic/tools/fake_proof_verifier.h",
     "src/quiche/quic/tools/quic_backend_response.h",
     "src/quiche/quic/tools/quic_client_base.h",
-    "src/quiche/quic/tools/quic_client_default_network_helper.h",
-    "src/quiche/quic/tools/quic_default_client.h",
     "src/quiche/quic/tools/quic_memory_cache_backend.h",
     "src/quiche/quic/tools/quic_name_lookup.h",
-    "src/quiche/quic/tools/quic_server_factory.h",
     "src/quiche/quic/tools/quic_simple_client_session.h",
     "src/quiche/quic/tools/quic_simple_client_stream.h",
     "src/quiche/quic/tools/quic_simple_crypto_server_stream_helper.h",
@@ -729,11 +726,8 @@
     "src/quiche/quic/tools/connect_tunnel.cc",
     "src/quiche/quic/tools/quic_backend_response.cc",
     "src/quiche/quic/tools/quic_client_base.cc",
-    "src/quiche/quic/tools/quic_client_default_network_helper.cc",
-    "src/quiche/quic/tools/quic_default_client.cc",
     "src/quiche/quic/tools/quic_memory_cache_backend.cc",
     "src/quiche/quic/tools/quic_name_lookup.cc",
-    "src/quiche/quic/tools/quic_server_factory.cc",
     "src/quiche/quic/tools/quic_simple_client_session.cc",
     "src/quiche/quic/tools/quic_simple_client_stream.cc",
     "src/quiche/quic/tools/quic_simple_crypto_server_stream_helper.cc",
@@ -977,6 +971,8 @@
     "src/quiche/quic/masque/masque_server_session.h",
     "src/quiche/quic/masque/masque_utils.h",
     "src/quiche/quic/platform/api/quic_udp_socket_platform_api.h",
+    "src/quiche/quic/tools/quic_client_default_network_helper.h",
+    "src/quiche/quic/tools/quic_default_client.h",
     "src/quiche/quic/tools/quic_server.h",
 ]
 epoll_tool_support_srcs = [
@@ -1004,6 +1000,8 @@
     "src/quiche/quic/masque/masque_server_backend.cc",
     "src/quiche/quic/masque/masque_server_session.cc",
     "src/quiche/quic/masque/masque_utils.cc",
+    "src/quiche/quic/tools/quic_client_default_network_helper.cc",
+    "src/quiche/quic/tools/quic_default_client.cc",
     "src/quiche/quic/tools/quic_server.cc",
 ]
 epoll_test_support_hdrs = [
@@ -1104,7 +1102,6 @@
     "src/quiche/http2/test_tools/http2_frame_builder_test.cc",
     "src/quiche/http2/test_tools/http2_random_test.cc",
     "src/quiche/http2/test_tools/random_decoder_test_base_test.cc",
-    "src/quiche/quic/bindings/quic_libevent_test.cc",
     "src/quiche/quic/core/congestion_control/bandwidth_sampler_test.cc",
     "src/quiche/quic/core/congestion_control/bbr2_simulator_test.cc",
     "src/quiche/quic/core/congestion_control/bbr_sender_test.cc",
@@ -1258,7 +1255,6 @@
     "src/quiche/quic/test_tools/simulator/quic_endpoint_test.cc",
     "src/quiche/quic/test_tools/simulator/simulator_test.cc",
     "src/quiche/quic/tools/connect_tunnel_test.cc",
-    "src/quiche/quic/tools/quic_default_client_test.cc",
     "src/quiche/quic/tools/quic_memory_cache_backend_test.cc",
     "src/quiche/quic/tools/quic_tcp_like_trace_converter_test.cc",
     "src/quiche/quic/tools/simple_ticket_crypter_test.cc",
@@ -1286,6 +1282,7 @@
 
 ]
 epoll_tests_srcs = [
+    "src/quiche/quic/bindings/quic_libevent_test.cc",
     "src/quiche/quic/core/batch_writer/quic_batch_writer_buffer_test.cc",
     "src/quiche/quic/core/batch_writer/quic_batch_writer_test.cc",
     "src/quiche/quic/core/batch_writer/quic_gso_batch_writer_test.cc",
@@ -1300,6 +1297,7 @@
     "src/quiche/quic/core/io/quic_poll_event_loop_test.cc",
     "src/quiche/quic/core/io/socket_test.cc",
     "src/quiche/quic/core/quic_linux_socket_utils_test.cc",
+    "src/quiche/quic/tools/quic_default_client_test.cc",
     "src/quiche/quic/tools/quic_server_test.cc",
     "src/quiche/quic/tools/quic_simple_server_session_test.cc",
     "src/quiche/quic/tools/quic_simple_server_stream_test.cc",
@@ -1323,6 +1321,7 @@
 ]
 cli_tools_hdrs = [
     "src/quiche/quic/tools/quic_epoll_client_factory.h",
+    "src/quiche/quic/tools/quic_server_factory.h",
     "src/quiche/quic/tools/quic_toy_client.h",
     "src/quiche/quic/tools/quic_toy_server.h",
 ]
@@ -1337,6 +1336,7 @@
     "src/quiche/quic/tools/quic_packet_printer_bin.cc",
     "src/quiche/quic/tools/quic_reject_reason_decoder_bin.cc",
     "src/quiche/quic/tools/quic_server_bin.cc",
+    "src/quiche/quic/tools/quic_server_factory.cc",
     "src/quiche/quic/tools/quic_toy_client.cc",
     "src/quiche/quic/tools/quic_toy_server.cc",
 ]
diff --git a/build/source_list.json b/build/source_list.json
index 6d59023..21ac56f 100644
--- a/build/source_list.json
+++ b/build/source_list.json
@@ -703,11 +703,8 @@
     "quiche/quic/tools/fake_proof_verifier.h",
     "quiche/quic/tools/quic_backend_response.h",
     "quiche/quic/tools/quic_client_base.h",
-    "quiche/quic/tools/quic_client_default_network_helper.h",
-    "quiche/quic/tools/quic_default_client.h",
     "quiche/quic/tools/quic_memory_cache_backend.h",
     "quiche/quic/tools/quic_name_lookup.h",
-    "quiche/quic/tools/quic_server_factory.h",
     "quiche/quic/tools/quic_simple_client_session.h",
     "quiche/quic/tools/quic_simple_client_stream.h",
     "quiche/quic/tools/quic_simple_crypto_server_stream_helper.h",
@@ -728,11 +725,8 @@
     "quiche/quic/tools/connect_tunnel.cc",
     "quiche/quic/tools/quic_backend_response.cc",
     "quiche/quic/tools/quic_client_base.cc",
-    "quiche/quic/tools/quic_client_default_network_helper.cc",
-    "quiche/quic/tools/quic_default_client.cc",
     "quiche/quic/tools/quic_memory_cache_backend.cc",
     "quiche/quic/tools/quic_name_lookup.cc",
-    "quiche/quic/tools/quic_server_factory.cc",
     "quiche/quic/tools/quic_simple_client_session.cc",
     "quiche/quic/tools/quic_simple_client_stream.cc",
     "quiche/quic/tools/quic_simple_crypto_server_stream_helper.cc",
@@ -976,6 +970,8 @@
     "quiche/quic/masque/masque_server_session.h",
     "quiche/quic/masque/masque_utils.h",
     "quiche/quic/platform/api/quic_udp_socket_platform_api.h",
+    "quiche/quic/tools/quic_client_default_network_helper.h",
+    "quiche/quic/tools/quic_default_client.h",
     "quiche/quic/tools/quic_server.h"
   ],
   "epoll_tool_support_srcs": [
@@ -1003,6 +999,8 @@
     "quiche/quic/masque/masque_server_backend.cc",
     "quiche/quic/masque/masque_server_session.cc",
     "quiche/quic/masque/masque_utils.cc",
+    "quiche/quic/tools/quic_client_default_network_helper.cc",
+    "quiche/quic/tools/quic_default_client.cc",
     "quiche/quic/tools/quic_server.cc"
   ],
   "epoll_test_support_hdrs": [
@@ -1103,7 +1101,6 @@
     "quiche/http2/test_tools/http2_frame_builder_test.cc",
     "quiche/http2/test_tools/http2_random_test.cc",
     "quiche/http2/test_tools/random_decoder_test_base_test.cc",
-    "quiche/quic/bindings/quic_libevent_test.cc",
     "quiche/quic/core/congestion_control/bandwidth_sampler_test.cc",
     "quiche/quic/core/congestion_control/bbr2_simulator_test.cc",
     "quiche/quic/core/congestion_control/bbr_sender_test.cc",
@@ -1257,7 +1254,6 @@
     "quiche/quic/test_tools/simulator/quic_endpoint_test.cc",
     "quiche/quic/test_tools/simulator/simulator_test.cc",
     "quiche/quic/tools/connect_tunnel_test.cc",
-    "quiche/quic/tools/quic_default_client_test.cc",
     "quiche/quic/tools/quic_memory_cache_backend_test.cc",
     "quiche/quic/tools/quic_tcp_like_trace_converter_test.cc",
     "quiche/quic/tools/simple_ticket_crypter_test.cc",
@@ -1285,6 +1281,7 @@
 
   ],
   "epoll_tests_srcs": [
+    "quiche/quic/bindings/quic_libevent_test.cc",
     "quiche/quic/core/batch_writer/quic_batch_writer_buffer_test.cc",
     "quiche/quic/core/batch_writer/quic_batch_writer_test.cc",
     "quiche/quic/core/batch_writer/quic_gso_batch_writer_test.cc",
@@ -1299,6 +1296,7 @@
     "quiche/quic/core/io/quic_poll_event_loop_test.cc",
     "quiche/quic/core/io/socket_test.cc",
     "quiche/quic/core/quic_linux_socket_utils_test.cc",
+    "quiche/quic/tools/quic_default_client_test.cc",
     "quiche/quic/tools/quic_server_test.cc",
     "quiche/quic/tools/quic_simple_server_session_test.cc",
     "quiche/quic/tools/quic_simple_server_stream_test.cc",
@@ -1322,6 +1320,7 @@
   ],
   "cli_tools_hdrs": [
     "quiche/quic/tools/quic_epoll_client_factory.h",
+    "quiche/quic/tools/quic_server_factory.h",
     "quiche/quic/tools/quic_toy_client.h",
     "quiche/quic/tools/quic_toy_server.h"
   ],
@@ -1336,6 +1335,7 @@
     "quiche/quic/tools/quic_packet_printer_bin.cc",
     "quiche/quic/tools/quic_reject_reason_decoder_bin.cc",
     "quiche/quic/tools/quic_server_bin.cc",
+    "quiche/quic/tools/quic_server_factory.cc",
     "quiche/quic/tools/quic_toy_client.cc",
     "quiche/quic/tools/quic_toy_server.cc"
   ],
diff --git a/quiche/BUILD.bazel b/quiche/BUILD.bazel
index 7e4687b..4bfdb60 100644
--- a/quiche/BUILD.bazel
+++ b/quiche/BUILD.bazel
@@ -204,9 +204,12 @@
         "@com_google_absl//absl/container:flat_hash_map",
         "@com_google_absl//absl/container:flat_hash_set",
         "@com_google_absl//absl/memory",
+        "@com_google_absl//absl/status",
+        "@com_google_absl//absl/status:statusor",
         "@com_google_absl//absl/strings",
         "@com_google_absl//absl/strings:str_format",
         "@com_google_absl//absl/types:optional",
+        "@com_google_absl//absl/types:span",
         "@com_google_googletest//:gtest",
         "@com_google_googleurl//url",
     ],
@@ -244,6 +247,7 @@
         "quic/test_tools/quic_http_response_cache_data/**",
     ]),
     deps = [
+        ":binary_http",
         ":quiche_core",
         ":quiche_platform_default_testonly",
         ":quiche_protobufs_testonly_cc_proto",
@@ -260,6 +264,8 @@
         "@com_google_absl//absl/hash",
         "@com_google_absl//absl/memory",
         "@com_google_absl//absl/numeric:int128",
+        "@com_google_absl//absl/status",
+        "@com_google_absl//absl/status:statusor",
         "@com_google_absl//absl/strings",
         "@com_google_absl//absl/strings:str_format",
         "@com_google_absl//absl/types:optional",
diff --git a/quiche/common/quiche_endian.h b/quiche/common/quiche_endian.h
index 834f743..5af28af 100644
--- a/quiche/common/quiche_endian.h
+++ b/quiche/common/quiche_endian.h
@@ -49,7 +49,7 @@
       char bytes[sizeof(T)];
     } value;
     value.number = input;
-    std::reverse(std::begin(value.bytes), std::end(value.bytes));
+    std::reverse(&value.bytes[0], &value.bytes[sizeof(T)]);
     return value.number;
   }
 };