Add support for draft-27
This CL updates v99 from draft 26 to draft 27. The main change is a rewrite of how transport parameters are read and written. This CL also replaces quic_enable_version_draft_25_v2 with quic_enable_version_draft_25_v3 to ensure that we only enable draft25 with the new code.
gfe-relnote: refactor transport parameter encoding code, protected by disabled flag quic_enable_version_draft_25_v3
PiperOrigin-RevId: 298427763
Change-Id: I2417b25584d914d38a55155ffddbac6e073fcd80
diff --git a/quic/core/quic_versions.h b/quic/core/quic_versions.h
index e2ab8d7..bc15354 100644
--- a/quic/core/quic_versions.h
+++ b/quic/core/quic_versions.h
@@ -125,7 +125,7 @@
QuicTransportVersion transport_version);
// IETF draft version most closely approximated by TLS + v99.
-enum : int { kQuicIetfDraftVersion = 26 };
+enum : int { kQuicIetfDraftVersion = 27 };
// The crypto handshake protocols that can be used with QUIC.
enum HandshakeProtocol {
@@ -293,6 +293,10 @@
// Returns true if this parsed version supports handshake done.
bool HasHandshakeDone() const;
+
+ // Returns true if this version uses variable-length integers when
+ // encoding transport parameter types and lengths.
+ bool HasVarIntTransportParams() const;
};
QUIC_EXPORT_PRIVATE ParsedQuicVersion UnsupportedQuicVersion();