From d4b2b6627385e872be591b22588023b2c9b78254 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Wed, 11 Jan 2017 12:01:41 +0700 Subject: [PATCH] change composeNextPacket function signature in packetPacker --- packet_packer.go | 7 +++---- packet_packer_test.go | 32 +++++++++++++++++--------------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/packet_packer.go b/packet_packer.go index fafb70be..e1833ea4 100644 --- a/packet_packer.go +++ b/packet_packer.go @@ -104,7 +104,8 @@ func (p *packetPacker) packPacket(stopWaitingFrame *frames.StopWaitingFrame, lea if isConnectionClose { payloadFrames = []frames.Frame{p.controlFrames[0]} } else { - payloadFrames, err = p.composeNextPacket(stopWaitingFrame, publicHeaderLength) + maxSize := protocol.MaxFrameAndPublicHeaderSize - publicHeaderLength + payloadFrames, err = p.composeNextPacket(stopWaitingFrame, maxSize) if err != nil { return nil, err } @@ -164,12 +165,10 @@ func (p *packetPacker) packPacket(stopWaitingFrame *frames.StopWaitingFrame, lea }, nil } -func (p *packetPacker) composeNextPacket(stopWaitingFrame *frames.StopWaitingFrame, publicHeaderLength protocol.ByteCount) ([]frames.Frame, error) { +func (p *packetPacker) composeNextPacket(stopWaitingFrame *frames.StopWaitingFrame, maxFrameSize protocol.ByteCount) ([]frames.Frame, error) { var payloadLength protocol.ByteCount var payloadFrames []frames.Frame - maxFrameSize := protocol.MaxFrameAndPublicHeaderSize - publicHeaderLength - if stopWaitingFrame != nil { payloadFrames = append(payloadFrames, stopWaitingFrame) minLength, err := stopWaitingFrame.MinLength(p.version) diff --git a/packet_packer_test.go b/packet_packer_test.go index 6e7f5025..24e9f389 100644 --- a/packet_packer_test.go +++ b/packet_packer_test.go @@ -37,6 +37,7 @@ var _ = Describe("Packet packer", func() { var ( packer *packetPacker publicHeaderLen protocol.ByteCount + maxFrameSize protocol.ByteCount streamFramer *streamFramer ) @@ -57,6 +58,7 @@ var _ = Describe("Packet packer", func() { perspective: protocol.PerspectiveServer, } publicHeaderLen = 1 + 8 + 2 // 1 flag byte, 8 connection ID, 2 packet number + maxFrameSize = protocol.MaxFrameAndPublicHeaderSize - publicHeaderLen packer.version = protocol.Version34 }) @@ -222,10 +224,10 @@ var _ = Describe("Packet packer", func() { controlFrames = append(controlFrames, f) } packer.controlFrames = controlFrames - payloadFrames, err := packer.composeNextPacket(nil, publicHeaderLen) + payloadFrames, err := packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(payloadFrames).To(HaveLen(maxFramesPerPacket)) - payloadFrames, err = packer.composeNextPacket(nil, publicHeaderLen) + payloadFrames, err = packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(payloadFrames).To(BeEmpty()) }) @@ -241,10 +243,10 @@ var _ = Describe("Packet packer", func() { controlFrames = append(controlFrames, blockedFrame) } packer.controlFrames = controlFrames - payloadFrames, err := packer.composeNextPacket(nil, publicHeaderLen) + payloadFrames, err := packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(payloadFrames).To(HaveLen(maxFramesPerPacket)) - payloadFrames, err = packer.composeNextPacket(nil, publicHeaderLen) + payloadFrames, err = packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(payloadFrames).To(HaveLen(10)) }) @@ -275,14 +277,14 @@ var _ = Describe("Packet packer", func() { DataLenPresent: false, } minLength, _ := f.MinLength(0) - maxStreamFrameDataLen := protocol.MaxFrameAndPublicHeaderSize - publicHeaderLen - minLength + maxStreamFrameDataLen := maxFrameSize - minLength f.Data = bytes.Repeat([]byte{'f'}, int(maxStreamFrameDataLen)) streamFramer.AddFrameForRetransmission(f) - payloadFrames, err := packer.composeNextPacket(nil, publicHeaderLen) + payloadFrames, err := packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(payloadFrames).To(HaveLen(1)) Expect(payloadFrames[0].(*frames.StreamFrame).DataLenPresent).To(BeFalse()) - payloadFrames, err = packer.composeNextPacket(nil, publicHeaderLen) + payloadFrames, err = packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(payloadFrames).To(BeEmpty()) }) @@ -353,17 +355,17 @@ var _ = Describe("Packet packer", func() { maxStreamFrameDataLen := protocol.MaxFrameAndPublicHeaderSize - publicHeaderLen - minLength f.Data = bytes.Repeat([]byte{'f'}, int(maxStreamFrameDataLen)+200) streamFramer.AddFrameForRetransmission(f) - payloadFrames, err := packer.composeNextPacket(nil, publicHeaderLen) + payloadFrames, err := packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(payloadFrames).To(HaveLen(1)) Expect(payloadFrames[0].(*frames.StreamFrame).DataLenPresent).To(BeFalse()) Expect(payloadFrames[0].(*frames.StreamFrame).Data).To(HaveLen(int(maxStreamFrameDataLen))) - payloadFrames, err = packer.composeNextPacket(nil, publicHeaderLen) + payloadFrames, err = packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(payloadFrames).To(HaveLen(1)) Expect(payloadFrames[0].(*frames.StreamFrame).Data).To(HaveLen(200)) Expect(payloadFrames[0].(*frames.StreamFrame).DataLenPresent).To(BeFalse()) - payloadFrames, err = packer.composeNextPacket(nil, publicHeaderLen) + payloadFrames, err = packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(payloadFrames).To(BeEmpty()) }) @@ -426,10 +428,10 @@ var _ = Describe("Packet packer", func() { f.Data = bytes.Repeat([]byte{'f'}, int(protocol.MaxFrameAndPublicHeaderSize-publicHeaderLen-minLength+2)) // + 2 since MinceLength is 1 bigger than the actual StreamFrame header streamFramer.AddFrameForRetransmission(f) - payloadFrames, err := packer.composeNextPacket(nil, publicHeaderLen) + payloadFrames, err := packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(payloadFrames).To(HaveLen(1)) - payloadFrames, err = packer.composeNextPacket(nil, publicHeaderLen) + payloadFrames, err = packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(payloadFrames).To(HaveLen(1)) }) @@ -494,7 +496,7 @@ var _ = Describe("Packet packer", func() { Data: bytes.Repeat([]byte{'f'}, length), } streamFramer.AddFrameForRetransmission(f) - _, err := packer.composeNextPacket(nil, publicHeaderLen) + _, err := packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(packer.controlFrames[0]).To(Equal(&frames.BlockedFrame{StreamID: 5})) }) @@ -507,7 +509,7 @@ var _ = Describe("Packet packer", func() { Data: bytes.Repeat([]byte{'f'}, length), } streamFramer.AddFrameForRetransmission(f) - p, err := packer.composeNextPacket(nil, publicHeaderLen) + p, err := packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(p).To(HaveLen(1)) Expect(p[0].(*frames.StreamFrame).DataLenPresent).To(BeFalse()) @@ -520,7 +522,7 @@ var _ = Describe("Packet packer", func() { Data: []byte("foobar"), } streamFramer.AddFrameForRetransmission(f) - _, err := packer.composeNextPacket(nil, publicHeaderLen) + _, err := packer.composeNextPacket(nil, maxFrameSize) Expect(err).ToNot(HaveOccurred()) Expect(packer.controlFrames[0]).To(Equal(&frames.BlockedFrame{StreamID: 0})) })