Add LengthPrefixedConnectionId support to QuicDataReader and Writer
This is currently only used in v99 NEW_CONNECTION_ID frames but will soon be used to parse the new connection ID invariants
gfe-relnote: n/a, protected by disabled v99 flag
PiperOrigin-RevId: 258684056
Change-Id: I666d150b9392e195a073272d2c5e79bd970d5862
diff --git a/quic/core/quic_data_reader.cc b/quic/core/quic_data_reader.cc
index a919018..e2871d7 100644
--- a/quic/core/quic_data_reader.cc
+++ b/quic/core/quic_data_reader.cc
@@ -165,6 +165,18 @@
return ok;
}
+bool QuicDataReader::ReadLengthPrefixedConnectionId(
+ QuicConnectionId* connection_id) {
+ uint8_t connection_id_length;
+ if (!ReadUInt8(&connection_id_length)) {
+ return false;
+ }
+ if (connection_id_length > kQuicMaxConnectionIdLength) {
+ return false;
+ }
+ return ReadConnectionId(connection_id, connection_id_length);
+}
+
bool QuicDataReader::ReadTag(uint32_t* tag) {
return ReadBytes(tag, sizeof(*tag));
}