write frames in big endian for QUIC 39

This commit is contained in:
Marten Seemann
2017-08-04 09:53:25 +07:00
parent dd0daaaf1e
commit 843764aea3
18 changed files with 2088 additions and 1003 deletions

View File

@@ -15,11 +15,9 @@ type WindowUpdateFrame struct {
//Write writes a RST_STREAM frame
func (f *WindowUpdateFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error {
typeByte := uint8(0x04)
b.WriteByte(typeByte)
utils.LittleEndian.WriteUint32(b, uint32(f.StreamID))
utils.LittleEndian.WriteUint64(b, uint64(f.ByteOffset))
b.WriteByte(0x4)
utils.GetByteOrder(version).WriteUint32(b, uint32(f.StreamID))
utils.GetByteOrder(version).WriteUint64(b, uint64(f.ByteOffset))
return nil
}
@@ -33,22 +31,20 @@ func ParseWindowUpdateFrame(r *bytes.Reader, version protocol.VersionNumber) (*W
frame := &WindowUpdateFrame{}
// read the TypeByte
_, err := r.ReadByte()
if err != nil {
if _, err := r.ReadByte(); err != nil {
return nil, err
}
sid, err := utils.LittleEndian.ReadUint32(r)
sid, err := utils.GetByteOrder(version).ReadUint32(r)
if err != nil {
return nil, err
}
frame.StreamID = protocol.StreamID(sid)
byteOffset, err := utils.LittleEndian.ReadUint64(r)
byteOffset, err := utils.GetByteOrder(version).ReadUint64(r)
if err != nil {
return nil, err
}
frame.ByteOffset = protocol.ByteCount(byteOffset)
return frame, nil
}