forked from quic-go/quic-go
implement BlockedFrame writing
This commit is contained in:
@@ -14,12 +14,20 @@ type BlockedFrame struct {
|
||||
|
||||
//Write writes a RST_STREAM frame
|
||||
func (f *BlockedFrame) Write(b *bytes.Buffer, packetNumber protocol.PacketNumber, packetNumberLen uint8) error {
|
||||
panic("BlockedFrame: Write not yet implemented")
|
||||
b.WriteByte(0x05)
|
||||
|
||||
if f.StreamID == 0 {
|
||||
panic("Writing of connection level BlockedFrames not yet implemented.")
|
||||
}
|
||||
|
||||
utils.WriteUint32(b, uint32(f.StreamID))
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// MinLength of a written frame
|
||||
func (f *BlockedFrame) MinLength() int {
|
||||
panic("BlockedFrame: Write not yet implemented")
|
||||
return 1 + 4
|
||||
}
|
||||
|
||||
// ParseBlockedFrame parses a BLOCKED frame
|
||||
|
||||
@@ -17,4 +17,18 @@ var _ = Describe("BlockedFrame", func() {
|
||||
Expect(frame.StreamID).To(Equal(protocol.StreamID(0xDEADBEEF)))
|
||||
})
|
||||
})
|
||||
|
||||
Context("when writing", func() {
|
||||
It("writes a sample frame", func() {
|
||||
b := &bytes.Buffer{}
|
||||
frame := BlockedFrame{StreamID: 0x1337}
|
||||
frame.Write(b, 10, 6)
|
||||
Expect(b.Bytes()).To(Equal([]byte{0x05, 0x37, 0x13, 0x0, 0x0}))
|
||||
})
|
||||
|
||||
It("has the correct min length", func() {
|
||||
frame := BlockedFrame{StreamID: 3}
|
||||
Expect(frame.MinLength()).To(Equal(5))
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user