From 2e46110d609e5c8881b3824f8328cbbc3c7ce98d Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Sat, 27 Jun 2020 15:30:34 +0700 Subject: [PATCH] increase the packet size of the client's Initial packet --- packet_packer.go | 6 +++--- packet_packer_test.go | 14 +++++++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packet_packer.go b/packet_packer.go index 6606e4471..ff9831ab4 100644 --- a/packet_packer.go +++ b/packet_packer.go @@ -313,9 +313,9 @@ func (p *packetPacker) MaybePackAckPacket(handshakeConfirmed bool) (*packedPacke } func (p *packetPacker) padPacket(buffer *packetBuffer) { - if dataLen := len(buffer.Data); dataLen < protocol.MinInitialPacketSize { - buffer.Data = buffer.Data[:protocol.MinInitialPacketSize] - for n := dataLen; n < protocol.MinInitialPacketSize; n++ { + if dataLen := protocol.ByteCount(len(buffer.Data)); dataLen < p.maxPacketSize { + buffer.Data = buffer.Data[:p.maxPacketSize] + for n := dataLen; n < p.maxPacketSize; n++ { buffer.Data[n] = 0 } } diff --git a/packet_packer_test.go b/packet_packer_test.go index 97fa328a9..685eee07e 100644 --- a/packet_packer_test.go +++ b/packet_packer_test.go @@ -403,7 +403,8 @@ var _ = Describe("Packet packer", func() { p, err := packer.PackConnectionClose(qerr.NewApplicationError(0x1337, "test error")) Expect(err).ToNot(HaveOccurred()) Expect(p.packets).To(HaveLen(2)) - Expect(p.buffer.Len()).To(BeEquivalentTo(protocol.MinInitialPacketSize)) + Expect(p.buffer.Len()).To(BeNumerically(">=", protocol.MinInitialPacketSize)) + Expect(p.buffer.Len()).To(BeEquivalentTo(maxPacketSize)) Expect(p.packets[0].header.Type).To(Equal(protocol.PacketTypeInitial)) Expect(p.packets[0].header.PacketNumber).To(Equal(protocol.PacketNumber(1))) Expect(p.packets[0].frames).To(HaveLen(1)) @@ -880,7 +881,8 @@ var _ = Describe("Packet packer", func() { expectAppendStreamFrames(ackhandler.Frame{Frame: &wire.StreamFrame{Data: []byte("foobar")}}) p, err := packer.PackCoalescedPacket(protocol.MaxByteCount) Expect(err).ToNot(HaveOccurred()) - Expect(p.buffer.Data).To(HaveLen(protocol.MinInitialPacketSize)) + Expect(p.buffer.Len()).To(BeNumerically(">=", protocol.MinInitialPacketSize)) + Expect(p.buffer.Len()).To(BeEquivalentTo(maxPacketSize)) Expect(p.packets).To(HaveLen(2)) Expect(p.packets[0].EncryptionLevel()).To(Equal(protocol.EncryptionInitial)) Expect(p.packets[0].frames).To(HaveLen(1)) @@ -1128,7 +1130,8 @@ var _ = Describe("Packet packer", func() { packer.perspective = protocol.PerspectiveClient p, err := packer.PackCoalescedPacket(protocol.MaxByteCount) Expect(err).ToNot(HaveOccurred()) - Expect(p.buffer.Len()).To(BeEquivalentTo(protocol.MinInitialPacketSize)) + Expect(p.buffer.Len()).To(BeNumerically(">=", protocol.MinInitialPacketSize)) + Expect(p.buffer.Len()).To(BeEquivalentTo(maxPacketSize)) Expect(p.packets).To(HaveLen(1)) Expect(p.packets[0].header.Token).To(Equal(token)) Expect(p.packets[0].frames).To(HaveLen(1)) @@ -1155,7 +1158,7 @@ var _ = Describe("Packet packer", func() { Expect(p.packets).To(HaveLen(1)) Expect(p.packets[0].ack).To(Equal(ack)) Expect(p.packets[0].frames).To(HaveLen(1)) - Expect(p.buffer.Len()).To(BeEquivalentTo(protocol.MinInitialPacketSize)) + Expect(p.buffer.Len()).To(BeEquivalentTo(maxPacketSize)) }) }) @@ -1193,7 +1196,8 @@ var _ = Describe("Packet packer", func() { Expect(err).ToNot(HaveOccurred()) Expect(packet).ToNot(BeNil()) Expect(packet.EncryptionLevel()).To(Equal(protocol.EncryptionInitial)) - Expect(packet.buffer.Len()).To(BeEquivalentTo(protocol.MinInitialPacketSize)) + Expect(packet.buffer.Len()).To(BeNumerically(">=", protocol.MinInitialPacketSize)) + Expect(packet.buffer.Len()).To(BeEquivalentTo(maxPacketSize)) Expect(packet.frames).To(HaveLen(1)) Expect(packet.frames[0].Frame).To(Equal(f)) })