Support session-specific ALPNs for clients, and specifying multiple ALPNs.
gfe-relnote: n/a (no functional change)
PiperOrigin-RevId: 266192245
Change-Id: Id0921d36b2c32c7df92a4a528ec19d9a28b826b0
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h
index a402057..d5ddc69 100644
--- a/quic/core/quic_session.h
+++ b/quic/core/quic_session.h
@@ -459,6 +459,13 @@
max_stream + num_expected_unidirectional_static_streams_);
}
+ // Returns the ALPN values to negotiate on this session.
+ virtual std::vector<std::string> GetAlpnsToOffer() {
+ // TODO(vasilvv): this currently sets HTTP/3 by default. Switch all
+ // non-HTTP applications to appropriate ALPNs.
+ return std::vector<std::string>({AlpnForVersion(connection()->version())});
+ }
+
protected:
using StreamMap = QuicSmallMap<QuicStreamId, std::unique_ptr<QuicStream>, 10>;