forked from quic-go/quic-go
reject DATAGRAM frames if datagram support is not enabled
This commit is contained in:
@@ -18,7 +18,7 @@ var _ = Describe("Frame parsing", func() {
|
||||
|
||||
BeforeEach(func() {
|
||||
buf = &bytes.Buffer{}
|
||||
parser = NewFrameParser(versionIETFFrames)
|
||||
parser = NewFrameParser(true, versionIETFFrames)
|
||||
})
|
||||
|
||||
It("returns nil if there's nothing more to read", func() {
|
||||
@@ -280,6 +280,24 @@ var _ = Describe("Frame parsing", func() {
|
||||
Expect(frame).To(Equal(f))
|
||||
})
|
||||
|
||||
It("unpacks DATAGRAM frames", func() {
|
||||
f := &DatagramFrame{Data: []byte("foobar")}
|
||||
buf := &bytes.Buffer{}
|
||||
Expect(f.Write(buf, versionIETFFrames)).To(Succeed())
|
||||
frame, err := parser.ParseNext(bytes.NewReader(buf.Bytes()), protocol.Encryption1RTT)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame).To(Equal(f))
|
||||
})
|
||||
|
||||
It("errors when DATAGRAM frames are not supported", func() {
|
||||
parser = NewFrameParser(false, versionIETFFrames)
|
||||
f := &DatagramFrame{Data: []byte("foobar")}
|
||||
buf := &bytes.Buffer{}
|
||||
Expect(f.Write(buf, versionIETFFrames)).To(Succeed())
|
||||
_, err := parser.ParseNext(bytes.NewReader(buf.Bytes()), protocol.Encryption1RTT)
|
||||
Expect(err).To(MatchError("FRAME_ENCODING_ERROR (frame type: 0x30): unknown frame type"))
|
||||
})
|
||||
|
||||
It("errors on invalid type", func() {
|
||||
_, err := parser.ParseNext(bytes.NewReader([]byte{0x42}), protocol.Encryption1RTT)
|
||||
Expect(err).To(MatchError("FRAME_ENCODING_ERROR (frame type: 0x42): unknown frame type"))
|
||||
|
||||
Reference in New Issue
Block a user