forked from quic-go/quic-go
write frames in big endian for QUIC 39
This commit is contained in:
@@ -57,13 +57,13 @@ func ParseAckFrame(r *bytes.Reader, version protocol.VersionNumber) (*AckFrame,
|
||||
missingSequenceNumberDeltaLen = 1
|
||||
}
|
||||
|
||||
largestAcked, err := utils.LittleEndian.ReadUintN(r, largestAckedLen)
|
||||
largestAcked, err := utils.GetByteOrder(version).ReadUintN(r, largestAckedLen)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
frame.LargestAcked = protocol.PacketNumber(largestAcked)
|
||||
|
||||
delay, err := utils.LittleEndian.ReadUfloat16(r)
|
||||
delay, err := utils.GetByteOrder(version).ReadUfloat16(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -81,7 +81,7 @@ func ParseAckFrame(r *bytes.Reader, version protocol.VersionNumber) (*AckFrame,
|
||||
return nil, ErrInvalidAckRanges
|
||||
}
|
||||
|
||||
ackBlockLength, err := utils.LittleEndian.ReadUintN(r, missingSequenceNumberDeltaLen)
|
||||
ackBlockLength, err := utils.GetByteOrder(version).ReadUintN(r, missingSequenceNumberDeltaLen)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -109,7 +109,7 @@ func ParseAckFrame(r *bytes.Reader, version protocol.VersionNumber) (*AckFrame,
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ackBlockLength, err = utils.LittleEndian.ReadUintN(r, missingSequenceNumberDeltaLen)
|
||||
ackBlockLength, err = utils.GetByteOrder(version).ReadUintN(r, missingSequenceNumberDeltaLen)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -167,7 +167,7 @@ func ParseAckFrame(r *bytes.Reader, version protocol.VersionNumber) (*AckFrame,
|
||||
return nil, err
|
||||
}
|
||||
// First Timestamp
|
||||
_, err = utils.LittleEndian.ReadUint32(r)
|
||||
_, err = utils.GetByteOrder(version).ReadUint32(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -180,13 +180,12 @@ func ParseAckFrame(r *bytes.Reader, version protocol.VersionNumber) (*AckFrame,
|
||||
}
|
||||
|
||||
// Time Since Previous Timestamp
|
||||
_, err = utils.LittleEndian.ReadUint16(r)
|
||||
_, err = utils.GetByteOrder(version).ReadUint16(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return frame, nil
|
||||
}
|
||||
|
||||
@@ -215,15 +214,15 @@ func (f *AckFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error
|
||||
case protocol.PacketNumberLen1:
|
||||
b.WriteByte(uint8(f.LargestAcked))
|
||||
case protocol.PacketNumberLen2:
|
||||
utils.LittleEndian.WriteUint16(b, uint16(f.LargestAcked))
|
||||
utils.GetByteOrder(version).WriteUint16(b, uint16(f.LargestAcked))
|
||||
case protocol.PacketNumberLen4:
|
||||
utils.LittleEndian.WriteUint32(b, uint32(f.LargestAcked))
|
||||
utils.GetByteOrder(version).WriteUint32(b, uint32(f.LargestAcked))
|
||||
case protocol.PacketNumberLen6:
|
||||
utils.LittleEndian.WriteUint48(b, uint64(f.LargestAcked)&(1<<48-1))
|
||||
utils.GetByteOrder(version).WriteUint48(b, uint64(f.LargestAcked)&(1<<48-1))
|
||||
}
|
||||
|
||||
f.DelayTime = time.Since(f.PacketReceivedTime)
|
||||
utils.LittleEndian.WriteUfloat16(b, uint64(f.DelayTime/time.Microsecond))
|
||||
utils.GetByteOrder(version).WriteUfloat16(b, uint64(f.DelayTime/time.Microsecond))
|
||||
|
||||
var numRanges uint64
|
||||
var numRangesWritten uint64
|
||||
@@ -253,11 +252,11 @@ func (f *AckFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error
|
||||
case protocol.PacketNumberLen1:
|
||||
b.WriteByte(uint8(firstAckBlockLength))
|
||||
case protocol.PacketNumberLen2:
|
||||
utils.LittleEndian.WriteUint16(b, uint16(firstAckBlockLength))
|
||||
utils.GetByteOrder(version).WriteUint16(b, uint16(firstAckBlockLength))
|
||||
case protocol.PacketNumberLen4:
|
||||
utils.LittleEndian.WriteUint32(b, uint32(firstAckBlockLength))
|
||||
utils.GetByteOrder(version).WriteUint32(b, uint32(firstAckBlockLength))
|
||||
case protocol.PacketNumberLen6:
|
||||
utils.LittleEndian.WriteUint48(b, uint64(firstAckBlockLength)&(1<<48-1))
|
||||
utils.GetByteOrder(version).WriteUint48(b, uint64(firstAckBlockLength)&(1<<48-1))
|
||||
}
|
||||
|
||||
for i, ackRange := range f.AckRanges {
|
||||
@@ -279,11 +278,11 @@ func (f *AckFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error
|
||||
case protocol.PacketNumberLen1:
|
||||
b.WriteByte(uint8(length))
|
||||
case protocol.PacketNumberLen2:
|
||||
utils.LittleEndian.WriteUint16(b, uint16(length))
|
||||
utils.GetByteOrder(version).WriteUint16(b, uint16(length))
|
||||
case protocol.PacketNumberLen4:
|
||||
utils.LittleEndian.WriteUint32(b, uint32(length))
|
||||
utils.GetByteOrder(version).WriteUint32(b, uint32(length))
|
||||
case protocol.PacketNumberLen6:
|
||||
utils.LittleEndian.WriteUint48(b, uint64(length)&(1<<48-1))
|
||||
utils.GetByteOrder(version).WriteUint48(b, uint64(length)&(1<<48-1))
|
||||
}
|
||||
numRangesWritten++
|
||||
} else {
|
||||
@@ -304,11 +303,11 @@ func (f *AckFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error
|
||||
case protocol.PacketNumberLen1:
|
||||
b.WriteByte(uint8(lengthWritten))
|
||||
case protocol.PacketNumberLen2:
|
||||
utils.LittleEndian.WriteUint16(b, uint16(lengthWritten))
|
||||
utils.GetByteOrder(version).WriteUint16(b, uint16(lengthWritten))
|
||||
case protocol.PacketNumberLen4:
|
||||
utils.LittleEndian.WriteUint32(b, uint32(lengthWritten))
|
||||
utils.GetByteOrder(version).WriteUint32(b, uint32(lengthWritten))
|
||||
case protocol.PacketNumberLen6:
|
||||
utils.LittleEndian.WriteUint48(b, lengthWritten&(1<<48-1))
|
||||
utils.GetByteOrder(version).WriteUint48(b, lengthWritten&(1<<48-1))
|
||||
}
|
||||
|
||||
numRangesWritten++
|
||||
@@ -326,7 +325,6 @@ func (f *AckFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error
|
||||
}
|
||||
|
||||
b.WriteByte(0) // no timestamps
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user