forked from quic-go/quic-go
implement basic public header writing
This commit is contained in:
@@ -72,3 +72,11 @@ func ParsePublicHeader(b io.ByteReader) (*PublicHeader, error) {
|
||||
|
||||
return header, nil
|
||||
}
|
||||
|
||||
// WritePublicHeader writes a public header
|
||||
func WritePublicHeader(b *bytes.Buffer, h *PublicHeader) {
|
||||
publicFlagByte := uint8(0x0C | 0x20)
|
||||
b.WriteByte(publicFlagByte)
|
||||
utils.WriteUint64(b, h.ConnectionID) // TODO: Send shorter connection id if possible
|
||||
utils.WriteUint32(b, uint32(h.PacketNumber)) // TODO: Send shorter packet number if possible
|
||||
}
|
||||
|
||||
@@ -72,4 +72,15 @@ var _ = Describe("Public Header", func() {
|
||||
Expect(b.Len()).To(BeZero())
|
||||
})
|
||||
})
|
||||
|
||||
Context("when writing", func() {
|
||||
It("writes a sample header", func() {
|
||||
b := &bytes.Buffer{}
|
||||
WritePublicHeader(b, &PublicHeader{
|
||||
ConnectionID: 1,
|
||||
PacketNumber: 2,
|
||||
})
|
||||
Expect(b.Bytes()).To(Equal([]byte{0x2c, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0}))
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user