forked from quic-go/quic-go
save the encryption level of a sent packet in the SentPacketHandler
This commit is contained in:
@@ -10,9 +10,10 @@ import (
|
|||||||
// A Packet is a packet
|
// A Packet is a packet
|
||||||
// +gen linkedlist
|
// +gen linkedlist
|
||||||
type Packet struct {
|
type Packet struct {
|
||||||
PacketNumber protocol.PacketNumber
|
PacketNumber protocol.PacketNumber
|
||||||
Frames []frames.Frame
|
Frames []frames.Frame
|
||||||
Length protocol.ByteCount
|
Length protocol.ByteCount
|
||||||
|
EncryptionLevel protocol.EncryptionLevel
|
||||||
|
|
||||||
MissingReports uint8
|
MissingReports uint8
|
||||||
|
|
||||||
|
|||||||
@@ -623,9 +623,10 @@ func (s *session) sendPacket() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = s.sentPacketHandler.SentPacket(&ackhandler.Packet{
|
err = s.sentPacketHandler.SentPacket(&ackhandler.Packet{
|
||||||
PacketNumber: packet.number,
|
PacketNumber: packet.number,
|
||||||
Frames: packet.frames,
|
Frames: packet.frames,
|
||||||
Length: protocol.ByteCount(len(packet.raw)),
|
Length: protocol.ByteCount(len(packet.raw)),
|
||||||
|
EncryptionLevel: packet.encryptionLevel,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -800,6 +800,28 @@ var _ = Describe("Session", func() {
|
|||||||
Expect(mconn.written).To(HaveLen(1))
|
Expect(mconn.written).To(HaveLen(1))
|
||||||
Expect(mconn.written[0]).To(ContainSubstring(string([]byte("PRST"))))
|
Expect(mconn.written[0]).To(ContainSubstring(string([]byte("PRST"))))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("informs the SentPacketHandler about sent packets", func() {
|
||||||
|
sess.sentPacketHandler = newMockSentPacketHandler()
|
||||||
|
sess.packer.packetNumberGenerator.next = 0x1337 + 9
|
||||||
|
sess.packer.cryptoSetup = &mockCryptoSetup{encLevelSeal: protocol.EncryptionSecure}
|
||||||
|
|
||||||
|
f := &frames.StreamFrame{
|
||||||
|
StreamID: 5,
|
||||||
|
Data: []byte("foobar"),
|
||||||
|
}
|
||||||
|
sess.streamFramer.AddFrameForRetransmission(f)
|
||||||
|
_, err := sess.GetOrOpenStream(5)
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
err = sess.sendPacket()
|
||||||
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
Expect(mconn.written).To(HaveLen(1))
|
||||||
|
sentPackets := sess.sentPacketHandler.(*mockSentPacketHandler).sentPackets
|
||||||
|
Expect(sentPackets).To(HaveLen(1))
|
||||||
|
Expect(sentPackets[0].Frames).To(ContainElement(f))
|
||||||
|
Expect(sentPackets[0].EncryptionLevel).To(Equal(protocol.EncryptionSecure))
|
||||||
|
Expect(sentPackets[0].Length).To(BeEquivalentTo(len(mconn.written[0])))
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
Context("retransmissions", func() {
|
Context("retransmissions", func() {
|
||||||
|
|||||||
Reference in New Issue
Block a user