Remove unused `handshake_mode` from ParsedQuicVersion. PiperOrigin-RevId: 841818322
diff --git a/quiche/quic/core/quic_versions.cc b/quiche/quic/core/quic_versions.cc index 85c205d..ae883c3 100644 --- a/quiche/quic/core/quic_versions.cc +++ b/quiche/quic/core/quic_versions.cc
@@ -60,9 +60,6 @@ } // namespace bool ParsedQuicVersion::IsKnown() const { - QUICHE_DCHECK(ParsedQuicVersionIsValid(handshake_protocol, transport_version)) - << QuicVersionToString(transport_version) << " " - << HandshakeProtocolToString(handshake_protocol); return transport_version != QUIC_VERSION_UNSUPPORTED; } @@ -138,8 +135,7 @@ } QUIC_BUG(quic_bug_10589_2) << "Unsupported version " - << QuicVersionToString(parsed_version.transport_version) << " " - << HandshakeProtocolToString(parsed_version.handshake_protocol); + << QuicVersionToString(parsed_version.transport_version); return 0; } @@ -290,9 +286,6 @@ quic_version_number <= QuicTransportVersion::QUIC_VERSION_MAX_VALUE) { QuicTransportVersion transport_version = static_cast<QuicTransportVersion>(quic_version_number); - if (!ParsedQuicVersionIsValid(PROTOCOL_QUIC_CRYPTO, transport_version)) { - return UnsupportedQuicVersion(); - } ParsedQuicVersion version(transport_version); if (std::find(supported_versions.begin(), supported_versions.end(), version) != supported_versions.end()) {
diff --git a/quiche/quic/core/quic_versions.h b/quiche/quic/core/quic_versions.h index 90fdbc8..20f7905 100644 --- a/quiche/quic/core/quic_versions.h +++ b/quiche/quic/core/quic_versions.h
@@ -189,25 +189,8 @@ // allowed as TLS requires crypto frames which v46 does not support. Note that // UnsupportedQuicVersion is a valid version. QUICHE_EXPORT constexpr bool ParsedQuicVersionIsValid( - HandshakeProtocol handshake_protocol, QuicTransportVersion transport_version) { - if (!TransportVersionIsValid(transport_version)) { - return false; - } - switch (handshake_protocol) { - case PROTOCOL_UNSUPPORTED: - return transport_version == QUIC_VERSION_UNSUPPORTED; - case PROTOCOL_QUIC_CRYPTO: - return transport_version != QUIC_VERSION_UNSUPPORTED && - transport_version != QUIC_VERSION_RESERVED_FOR_NEGOTIATION && - transport_version != QUIC_VERSION_IETF_DRAFT_29 && - transport_version != QUIC_VERSION_IETF_RFC_V1 && - transport_version != QUIC_VERSION_IETF_RFC_V2; - case PROTOCOL_TLS1_3: - return transport_version != QUIC_VERSION_UNSUPPORTED && - VersionIsIetfQuic(transport_version); - } - return false; + return TransportVersionIsValid(transport_version); } QUICHE_EXPORT constexpr HandshakeProtocol HandshakeProtocolForTransportVersion( @@ -224,43 +207,23 @@ // A parsed QUIC version label which determines that handshake protocol // and the transport version. struct QUICHE_EXPORT ParsedQuicVersion { - HandshakeProtocol handshake_protocol; QuicTransportVersion transport_version; - constexpr explicit ParsedQuicVersion(QuicTransportVersion transport_version) - : handshake_protocol( - HandshakeProtocolForTransportVersion(transport_version)), - transport_version(transport_version) { - QUICHE_DCHECK( - ParsedQuicVersionIsValid(handshake_protocol, transport_version)) - << QuicVersionToString(transport_version) << " " - << HandshakeProtocolToString(handshake_protocol); - } + constexpr ParsedQuicVersion(QuicTransportVersion transport_version) + : transport_version(transport_version) {} constexpr ParsedQuicVersion(const ParsedQuicVersion& other) : ParsedQuicVersion(other.transport_version) {} ParsedQuicVersion& operator=(const ParsedQuicVersion& other) { - QUICHE_DCHECK(ParsedQuicVersionIsValid(other.handshake_protocol, - other.transport_version)) - << QuicVersionToString(other.transport_version) << " " - << HandshakeProtocolToString(other.handshake_protocol); if (this != &other) { - handshake_protocol = other.handshake_protocol; transport_version = other.transport_version; } return *this; } - bool operator==(const ParsedQuicVersion& other) const { - return handshake_protocol == other.handshake_protocol && - transport_version == other.transport_version; - } - - bool operator!=(const ParsedQuicVersion& other) const { - return handshake_protocol != other.handshake_protocol || - transport_version != other.transport_version; - } + bool operator==(const ParsedQuicVersion& other) const = default; + bool operator!=(const ParsedQuicVersion& other) const = default; static constexpr ParsedQuicVersion RFCv2() { return ParsedQuicVersion(QUIC_VERSION_IETF_RFC_V2);
diff --git a/quiche/quic/core/quic_versions_test.cc b/quiche/quic/core/quic_versions_test.cc index ba0c34e..ac6c847 100644 --- a/quiche/quic/core/quic_versions_test.cc +++ b/quiche/quic/core/quic_versions_test.cc
@@ -25,36 +25,25 @@ using ::testing::IsEmpty; TEST(QuicVersionsTest, CreateQuicVersionLabelUnsupported) { - EXPECT_QUIC_BUG( - CreateQuicVersionLabel(UnsupportedQuicVersion()), - "Unsupported version QUIC_VERSION_UNSUPPORTED PROTOCOL_UNSUPPORTED"); + EXPECT_QUIC_BUG(CreateQuicVersionLabel(UnsupportedQuicVersion()), + "Unsupported version QUIC_VERSION_UNSUPPORTED"); } TEST(QuicVersionsTest, KnownAndValid) { for (const ParsedQuicVersion& version : AllSupportedVersions()) { EXPECT_TRUE(version.IsKnown()); - EXPECT_TRUE(ParsedQuicVersionIsValid(version.handshake_protocol, - version.transport_version)); + EXPECT_TRUE(ParsedQuicVersionIsValid(version.transport_version)); } ParsedQuicVersion unsupported = UnsupportedQuicVersion(); EXPECT_FALSE(unsupported.IsKnown()); - EXPECT_TRUE(ParsedQuicVersionIsValid(unsupported.handshake_protocol, - unsupported.transport_version)); + EXPECT_TRUE(ParsedQuicVersionIsValid(unsupported.transport_version)); ParsedQuicVersion reserved = QuicVersionReservedForNegotiation(); EXPECT_TRUE(reserved.IsKnown()); - EXPECT_TRUE(ParsedQuicVersionIsValid(reserved.handshake_protocol, - reserved.transport_version)); - // Check that invalid combinations are not valid. - EXPECT_FALSE(ParsedQuicVersionIsValid(PROTOCOL_TLS1_3, QUIC_VERSION_46)); - EXPECT_FALSE(ParsedQuicVersionIsValid(PROTOCOL_QUIC_CRYPTO, - QUIC_VERSION_IETF_DRAFT_29)); + EXPECT_TRUE(ParsedQuicVersionIsValid(reserved.transport_version)); // Check that deprecated versions are not valid. - EXPECT_FALSE(ParsedQuicVersionIsValid(PROTOCOL_QUIC_CRYPTO, - static_cast<QuicTransportVersion>(33))); - EXPECT_FALSE(ParsedQuicVersionIsValid(PROTOCOL_QUIC_CRYPTO, - static_cast<QuicTransportVersion>(99))); - EXPECT_FALSE(ParsedQuicVersionIsValid(PROTOCOL_TLS1_3, - static_cast<QuicTransportVersion>(99))); + EXPECT_FALSE(ParsedQuicVersionIsValid(static_cast<QuicTransportVersion>(33))); + EXPECT_FALSE(ParsedQuicVersionIsValid(static_cast<QuicTransportVersion>(43))); + EXPECT_FALSE(ParsedQuicVersionIsValid(static_cast<QuicTransportVersion>(99))); } TEST(QuicVersionsTest, Features) { @@ -420,18 +409,17 @@ TEST(QuicVersionsTest, SupportedVersionsHasCorrectList) { size_t index = 0; - for (HandshakeProtocol handshake_protocol : SupportedHandshakeProtocols()) { - for (int trans_vers = 255; trans_vers > 0; trans_vers--) { - QuicTransportVersion transport_version = - static_cast<QuicTransportVersion>(trans_vers); - SCOPED_TRACE(index); - if (ParsedQuicVersionIsValid(handshake_protocol, transport_version)) { - ParsedQuicVersion version = SupportedVersions()[index]; - EXPECT_EQ(version, ParsedQuicVersion(transport_version)); - index++; - } + for (int trans_vers = 255; trans_vers > 0; trans_vers--) { + QuicTransportVersion transport_version = + static_cast<QuicTransportVersion>(trans_vers); + SCOPED_TRACE(index); + if (ParsedQuicVersionIsValid(transport_version)) { + ParsedQuicVersion version = SupportedVersions()[index]; + EXPECT_EQ(version, ParsedQuicVersion(transport_version)); + index++; } } + EXPECT_EQ(SupportedVersions().size(), index); }