implement basic public header writing

This commit is contained in:
Lucas Clemente
2016-04-10 20:23:36 +02:00
parent 4a44e4982e
commit ab14684299
2 changed files with 19 additions and 0 deletions

View File

@@ -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
}

View File

@@ -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}))
})
})
})