Roll forward cl/466743774
Took a quick audit through all the QuicServer construction I could find in codesearch and fixed all the related memory lifetime issues I could find. Issues fixed in cl/466791564, cl/466976602, cl/467223371, cl/467221646, and cl/467212926.
No changes from original CL (other than those made the separate fix CLs).
*** Original change description ***
Create QUICHE toy CONNECT proxy server
***
PiperOrigin-RevId: 467313603
diff --git a/quiche/quic/tools/quic_server.h b/quiche/quic/tools/quic_server.h
index 11ff04e..0e48371 100644
--- a/quiche/quic/tools/quic_server.h
+++ b/quiche/quic/tools/quic_server.h
@@ -16,6 +16,7 @@
#include "absl/strings/string_view.h"
#include "quiche/quic/core/crypto/quic_crypto_server_config.h"
#include "quiche/quic/core/io/quic_event_loop.h"
+#include "quiche/quic/core/io/socket_factory.h"
#include "quiche/quic/core/quic_config.h"
#include "quiche/quic/core/quic_packet_writer.h"
#include "quiche/quic/core/quic_udp_socket.h"
@@ -115,6 +116,9 @@
// Schedules alarms and notifies the server of the I/O events.
std::unique_ptr<QuicEventLoop> event_loop_;
+ // Used by some backends to create additional sockets, e.g. for upstream
+ // destination connections for proxying.
+ std::unique_ptr<SocketFactory> socket_factory_;
// Accepts data from the framer and demuxes clients to sessions.
std::unique_ptr<QuicDispatcher> dispatcher_;