forked from quic-go/quic-go
@@ -101,6 +101,11 @@ func (p *packetPacker) composeNextPacket(stopWaitingFrame *frames.StopWaitingFra
|
||||
payloadLength := 0
|
||||
var payloadFrames []frames.Frame
|
||||
|
||||
// don't send out packets that only contain a StopWaitingFrame
|
||||
if len(controlFrames) == 0 && p.streamFrameQueue.Len() == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
// TODO: handle the case where there are more controlFrames than we can put into one packet
|
||||
if stopWaitingFrame != nil {
|
||||
payloadFrames = append(payloadFrames, stopWaitingFrame)
|
||||
|
||||
@@ -69,6 +69,13 @@ var _ = Describe("Packet packer", func() {
|
||||
Expect(p.frames[0]).To(Equal(swf))
|
||||
})
|
||||
|
||||
It("does not pack a packet containing only a StopWaitingFrame", func() {
|
||||
swf := &frames.StopWaitingFrame{LeastUnacked: 10}
|
||||
p, err := packer.PackPacket(swf, []frames.Frame{}, false)
|
||||
Expect(p).To(BeNil())
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
})
|
||||
|
||||
It("packs many control frames into 1 packets", func() {
|
||||
f := &frames.AckFrame{LargestObserved: 1}
|
||||
b := &bytes.Buffer{}
|
||||
|
||||
Reference in New Issue
Block a user