don't send every MAX_{STREAM}_DATA twice

This commit is contained in:
Marten Seemann
2017-12-08 18:14:22 +07:00
parent eb3e253be2
commit 16d610417b
2 changed files with 1 additions and 30 deletions

View File

@@ -694,8 +694,7 @@ func (s *session) sendPacket() error {
// Get MAX_DATA and MAX_STREAM_DATA frames
// this call triggers the flow controller to increase the flow control windows, if necessary
windowUpdates := s.getWindowUpdates()
for _, f := range windowUpdates {
for _, f := range s.getWindowUpdates() {
s.packer.QueueControlFrame(f)
}
@@ -777,11 +776,6 @@ func (s *session) sendPacket() error {
return err
}
// send every window update twice
for _, f := range windowUpdates {
s.packer.QueueControlFrame(f)
}
windowUpdates = nil
ack = nil
}
}

View File

@@ -830,29 +830,6 @@ var _ = Describe("Session", func() {
Expect(sess.sentPacketHandler.(*mockSentPacketHandler).sentPackets[0].Frames).To(ContainElement(&wire.PingFrame{}))
})
It("sends two MAX_STREAM_DATA frames", func() {
mockFC := mocks.NewMockStreamFlowController(mockCtrl)
mockFC.EXPECT().GetWindowUpdate().Return(protocol.ByteCount(0x1000))
mockFC.EXPECT().GetWindowUpdate().Return(protocol.ByteCount(0)).Times(2)
str, err := sess.GetOrOpenStream(5)
Expect(err).ToNot(HaveOccurred())
str.(*stream).flowController = mockFC
err = sess.sendPacket()
Expect(err).NotTo(HaveOccurred())
err = sess.sendPacket()
Expect(err).NotTo(HaveOccurred())
err = sess.sendPacket()
Expect(err).NotTo(HaveOccurred())
buf := &bytes.Buffer{}
(&wire.MaxStreamDataFrame{
StreamID: 5,
ByteOffset: 0x1000,
}).Write(buf, sess.version)
Expect(mconn.written).To(HaveLen(2))
Expect(mconn.written).To(Receive(ContainSubstring(string(buf.Bytes()))))
Expect(mconn.written).To(Receive(ContainSubstring(string(buf.Bytes()))))
})
It("sends public reset", func() {
err := sess.sendPublicReset(1)
Expect(err).NotTo(HaveOccurred())