Use writevarint62 instead of writeuint8 to write the frame type in ietf quic as the ietf draft specifies that the frame_type uses variable length integer encoding. no behavior change.
PiperOrigin-RevId: 317891303
Change-Id: Ic27606c0ba76a0f6e20f8c8eac384a2089fb8305
diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index 847a166..cb1480e 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -1037,8 +1037,8 @@
for (const QuicFrame& frame : frames) {
// Determine if we should write stream frame length in header.
const bool last_frame_in_packet = i == frames.size() - 1;
- if (!AppendIetfTypeByte(frame, last_frame_in_packet, writer)) {
- QUIC_BUG << "AppendIetfTypeByte failed: " << detailed_error();
+ if (!AppendIetfFrameType(frame, last_frame_in_packet, writer)) {
+ QUIC_BUG << "AppendIetfFrameType failed: " << detailed_error();
return 0;
}
@@ -4751,7 +4751,7 @@
bool last_frame_in_packet,
QuicDataWriter* writer) {
if (VersionHasIetfQuicFrames(version_.transport_version)) {
- return AppendIetfTypeByte(frame, last_frame_in_packet, writer);
+ return AppendIetfFrameType(frame, last_frame_in_packet, writer);
}
uint8_t type_byte = 0;
switch (frame.type) {
@@ -4807,9 +4807,9 @@
return writer->WriteUInt8(type_byte);
}
-bool QuicFramer::AppendIetfTypeByte(const QuicFrame& frame,
- bool last_frame_in_packet,
- QuicDataWriter* writer) {
+bool QuicFramer::AppendIetfFrameType(const QuicFrame& frame,
+ bool last_frame_in_packet,
+ QuicDataWriter* writer) {
uint8_t type_byte = 0;
switch (frame.type) {
case PADDING_FRAME:
@@ -4919,7 +4919,7 @@
<< frame.type;
return false;
}
- return writer->WriteUInt8(type_byte);
+ return writer->WriteVarInt62(type_byte);
}
// static
@@ -5389,7 +5389,7 @@
QuicDataWriter::GetVarInt62Len(frame.ecn_ce_count));
}
- if (!writer->WriteUInt8(type)) {
+ if (!writer->WriteVarInt62(type)) {
set_detailed_error("No room for frame-type");
return false;
}