forked from quic-go/quic-go
remove special treatment of handshake retransmissions
This commit is contained in:
@@ -96,7 +96,6 @@ type packetPacker struct {
|
||||
acks ackFrameSource
|
||||
|
||||
maxPacketSize protocol.ByteCount
|
||||
hasSentPacket bool // has the packetPacker already sent a packet
|
||||
numNonRetransmittableAcks int
|
||||
}
|
||||
|
||||
@@ -250,10 +249,6 @@ func (p *packetPacker) packHandshakeRetransmission(packet *ackhandler.Packet) (*
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// make sure that the retransmission for an Initial packet is sent as an Initial packet
|
||||
if packet.PacketType == protocol.PacketTypeInitial {
|
||||
p.hasSentPacket = false
|
||||
}
|
||||
header := p.getHeader(packet.EncryptionLevel)
|
||||
header.Type = packet.PacketType
|
||||
raw, err := p.writeAndSealPacket(header, packet.Frames, sealer)
|
||||
@@ -275,10 +270,6 @@ func (p *packetPacker) PackPacket() (*packedPacket, error) {
|
||||
if packet != nil {
|
||||
return packet, nil
|
||||
}
|
||||
// if this is the first packet to be send, make sure it contains stream data
|
||||
if !p.hasSentPacket && packet == nil {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
encLevel, sealer := p.cryptoSetup.GetSealer()
|
||||
header := p.getHeader(encLevel)
|
||||
@@ -484,7 +475,6 @@ func (p *packetPacker) writeAndSealPacket(
|
||||
if num != header.PacketNumber {
|
||||
return nil, errors.New("packetPacker BUG: Peeked and Popped packet numbers do not match")
|
||||
}
|
||||
p.hasSentPacket = true
|
||||
return raw, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -88,7 +88,6 @@ var _ = Describe("Packet packer", func() {
|
||||
protocol.PerspectiveServer,
|
||||
version,
|
||||
)
|
||||
packer.hasSentPacket = true
|
||||
packer.version = version
|
||||
packer.maxPacketSize = maxPacketSize
|
||||
})
|
||||
@@ -712,7 +711,6 @@ var _ = Describe("Packet packer", func() {
|
||||
ackFramer.EXPECT().GetAckFrame()
|
||||
initialStream.EXPECT().HasData().Return(true)
|
||||
initialStream.EXPECT().PopCryptoFrame(gomock.Any()).Return(f)
|
||||
packer.hasSentPacket = false
|
||||
packer.perspective = protocol.PerspectiveClient
|
||||
packet, err := packer.PackPacket()
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
@@ -732,7 +730,6 @@ var _ = Describe("Packet packer", func() {
|
||||
initialStream.EXPECT().PopCryptoFrame(gomock.Any()).Return(&wire.CryptoFrame{
|
||||
Data: []byte("foobar"),
|
||||
})
|
||||
packer.hasSentPacket = false
|
||||
packer.perspective = protocol.PerspectiveClient
|
||||
packet, err := packer.PackPacket()
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
@@ -749,7 +746,6 @@ var _ = Describe("Packet packer", func() {
|
||||
initialStream.EXPECT().HasData().Return(true)
|
||||
initialStream.EXPECT().PopCryptoFrame(gomock.Any()).Return(f)
|
||||
packer.version = protocol.VersionTLS
|
||||
packer.hasSentPacket = false
|
||||
packer.perspective = protocol.PerspectiveClient
|
||||
packet, err := packer.PackPacket()
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
@@ -807,13 +803,15 @@ var _ = Describe("Packet packer", func() {
|
||||
EncryptionLevel: protocol.EncryptionInitial,
|
||||
Frames: []wire.Frame{sf},
|
||||
}
|
||||
p, err := packer.PackRetransmission(packet)
|
||||
packets, err := packer.PackRetransmission(packet)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(p).To(HaveLen(1))
|
||||
Expect(p[0].frames).To(Equal([]wire.Frame{sf}))
|
||||
Expect(p[0].encryptionLevel).To(Equal(protocol.EncryptionInitial))
|
||||
Expect(p[0].header.Type).To(Equal(protocol.PacketTypeInitial))
|
||||
Expect(p[0].header.Token).To(Equal(token))
|
||||
Expect(packets).To(HaveLen(1))
|
||||
p := packets[0]
|
||||
Expect(p.frames).To(Equal([]wire.Frame{sf}))
|
||||
Expect(p.encryptionLevel).To(Equal(protocol.EncryptionInitial))
|
||||
Expect(p.header.Type).To(Equal(protocol.PacketTypeInitial))
|
||||
Expect(p.header.Token).To(Equal(token))
|
||||
Expect(p.raw).To(HaveLen(protocol.MinInitialPacketSize))
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user