remove special treatment of handshake retransmissions

This commit is contained in:
Marten Seemann
2018-11-28 10:26:17 +07:00
parent 9313557b81
commit 610f923f91
2 changed files with 8 additions and 20 deletions

View File

@@ -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
}

View File

@@ -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))
})
})
})