forked from quic-go/quic-go
@@ -523,8 +523,8 @@ func (s *Session) sendPacket() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// QueueStreamFrame queues a frame for sending to the client
|
// queueStreamFrame queues a frame for sending to the client
|
||||||
func (s *Session) QueueStreamFrame(frame *frames.StreamFrame) error {
|
func (s *Session) queueStreamFrame(frame *frames.StreamFrame) error {
|
||||||
s.packer.AddStreamFrame(*frame)
|
s.packer.AddStreamFrame(*frame)
|
||||||
s.scheduleSending()
|
s.scheduleSending()
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -362,7 +362,7 @@ var _ = Describe("Session", func() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
It("sends queued stream frames", func() {
|
It("sends queued stream frames", func() {
|
||||||
session.QueueStreamFrame(&frames.StreamFrame{
|
session.queueStreamFrame(&frames.StreamFrame{
|
||||||
StreamID: 1,
|
StreamID: 1,
|
||||||
Data: []byte("foobar"),
|
Data: []byte("foobar"),
|
||||||
})
|
})
|
||||||
@@ -420,10 +420,10 @@ var _ = Describe("Session", func() {
|
|||||||
|
|
||||||
It("sends after queuing a stream frame", func() {
|
It("sends after queuing a stream frame", func() {
|
||||||
Expect(session.sendingScheduled).NotTo(Receive())
|
Expect(session.sendingScheduled).NotTo(Receive())
|
||||||
err := session.QueueStreamFrame(&frames.StreamFrame{StreamID: 1})
|
err := session.queueStreamFrame(&frames.StreamFrame{StreamID: 1})
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
// Try again, so that we detect blocking scheduleSending
|
// Try again, so that we detect blocking scheduleSending
|
||||||
err = session.QueueStreamFrame(&frames.StreamFrame{StreamID: 1})
|
err = session.queueStreamFrame(&frames.StreamFrame{StreamID: 1})
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(session.sendingScheduled).To(Receive())
|
Expect(session.sendingScheduled).To(Receive())
|
||||||
})
|
})
|
||||||
@@ -445,11 +445,11 @@ var _ = Describe("Session", func() {
|
|||||||
It("bundles two small frames into one packet", func() {
|
It("bundles two small frames into one packet", func() {
|
||||||
go session.Run()
|
go session.Run()
|
||||||
|
|
||||||
session.QueueStreamFrame(&frames.StreamFrame{
|
session.queueStreamFrame(&frames.StreamFrame{
|
||||||
StreamID: 5,
|
StreamID: 5,
|
||||||
Data: []byte("foobar1"),
|
Data: []byte("foobar1"),
|
||||||
})
|
})
|
||||||
session.QueueStreamFrame(&frames.StreamFrame{
|
session.queueStreamFrame(&frames.StreamFrame{
|
||||||
StreamID: 5,
|
StreamID: 5,
|
||||||
Data: []byte("foobar2"),
|
Data: []byte("foobar2"),
|
||||||
})
|
})
|
||||||
@@ -460,11 +460,11 @@ var _ = Describe("Session", func() {
|
|||||||
It("sends out two big frames in two packet", func() {
|
It("sends out two big frames in two packet", func() {
|
||||||
go session.Run()
|
go session.Run()
|
||||||
|
|
||||||
session.QueueStreamFrame(&frames.StreamFrame{
|
session.queueStreamFrame(&frames.StreamFrame{
|
||||||
StreamID: 5,
|
StreamID: 5,
|
||||||
Data: bytes.Repeat([]byte{'e'}, int(protocol.SmallPacketPayloadSizeThreshold+50)),
|
Data: bytes.Repeat([]byte{'e'}, int(protocol.SmallPacketPayloadSizeThreshold+50)),
|
||||||
})
|
})
|
||||||
session.QueueStreamFrame(&frames.StreamFrame{
|
session.queueStreamFrame(&frames.StreamFrame{
|
||||||
StreamID: 5,
|
StreamID: 5,
|
||||||
Data: bytes.Repeat([]byte{'f'}, int(protocol.SmallPacketPayloadSizeThreshold+50)),
|
Data: bytes.Repeat([]byte{'f'}, int(protocol.SmallPacketPayloadSizeThreshold+50)),
|
||||||
})
|
})
|
||||||
@@ -475,12 +475,12 @@ var _ = Describe("Session", func() {
|
|||||||
It("sends out two small frames that are written to long after one another into two packet", func() {
|
It("sends out two small frames that are written to long after one another into two packet", func() {
|
||||||
go session.Run()
|
go session.Run()
|
||||||
|
|
||||||
session.QueueStreamFrame(&frames.StreamFrame{
|
session.queueStreamFrame(&frames.StreamFrame{
|
||||||
StreamID: 5,
|
StreamID: 5,
|
||||||
Data: []byte("foobar1"),
|
Data: []byte("foobar1"),
|
||||||
})
|
})
|
||||||
time.Sleep(10 * protocol.SmallPacketSendDelay)
|
time.Sleep(10 * protocol.SmallPacketSendDelay)
|
||||||
session.QueueStreamFrame(&frames.StreamFrame{
|
session.queueStreamFrame(&frames.StreamFrame{
|
||||||
StreamID: 5,
|
StreamID: 5,
|
||||||
Data: []byte("foobar2"),
|
Data: []byte("foobar2"),
|
||||||
})
|
})
|
||||||
@@ -493,12 +493,12 @@ var _ = Describe("Session", func() {
|
|||||||
|
|
||||||
packetNumber := protocol.PacketNumber(0x1337)
|
packetNumber := protocol.PacketNumber(0x1337)
|
||||||
session.receivedPacketHandler.ReceivedPacket(packetNumber, true)
|
session.receivedPacketHandler.ReceivedPacket(packetNumber, true)
|
||||||
session.QueueStreamFrame(&frames.StreamFrame{
|
session.queueStreamFrame(&frames.StreamFrame{
|
||||||
StreamID: 5,
|
StreamID: 5,
|
||||||
Data: []byte("foobar1"),
|
Data: []byte("foobar1"),
|
||||||
})
|
})
|
||||||
time.Sleep(10 * protocol.SmallPacketSendDelay)
|
time.Sleep(10 * protocol.SmallPacketSendDelay)
|
||||||
session.QueueStreamFrame(&frames.StreamFrame{
|
session.queueStreamFrame(&frames.StreamFrame{
|
||||||
StreamID: 5,
|
StreamID: 5,
|
||||||
Data: []byte("foobar2"),
|
Data: []byte("foobar2"),
|
||||||
})
|
})
|
||||||
@@ -589,7 +589,7 @@ var _ = Describe("Session", func() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
It("should call OnSent", func() {
|
It("should call OnSent", func() {
|
||||||
session.QueueStreamFrame(&frames.StreamFrame{StreamID: 5})
|
session.queueStreamFrame(&frames.StreamFrame{StreamID: 5})
|
||||||
session.sendPacket()
|
session.sendPacket()
|
||||||
Expect(cong.nCalls).To(Equal(2)) // OnPacketSent + GetCongestionWindow
|
Expect(cong.nCalls).To(Equal(2)) // OnPacketSent + GetCongestionWindow
|
||||||
Expect(cong.argsOnPacketSent[1]).To(Equal(protocol.ByteCount(25)))
|
Expect(cong.argsOnPacketSent[1]).To(Equal(protocol.ByteCount(25)))
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type streamHandler interface {
|
type streamHandler interface {
|
||||||
QueueStreamFrame(*frames.StreamFrame) error
|
queueStreamFrame(*frames.StreamFrame) error
|
||||||
UpdateReceiveFlowControlWindow(streamID protocol.StreamID, byteOffset protocol.ByteCount) error
|
UpdateReceiveFlowControlWindow(streamID protocol.StreamID, byteOffset protocol.ByteCount) error
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,7 +180,7 @@ func (s *stream) Write(p []byte) (int, error) {
|
|||||||
dataLen := utils.Min(len(p), int(remainingBytesInWindow))
|
dataLen := utils.Min(len(p), int(remainingBytesInWindow))
|
||||||
data := make([]byte, dataLen)
|
data := make([]byte, dataLen)
|
||||||
copy(data, p)
|
copy(data, p)
|
||||||
err := s.session.QueueStreamFrame(&frames.StreamFrame{
|
err := s.session.queueStreamFrame(&frames.StreamFrame{
|
||||||
StreamID: s.streamID,
|
StreamID: s.streamID,
|
||||||
Offset: s.writeOffset,
|
Offset: s.writeOffset,
|
||||||
Data: data,
|
Data: data,
|
||||||
@@ -199,7 +199,7 @@ func (s *stream) Write(p []byte) (int, error) {
|
|||||||
// Close implements io.Closer
|
// Close implements io.Closer
|
||||||
func (s *stream) Close() error {
|
func (s *stream) Close() error {
|
||||||
atomic.StoreInt32(&s.closed, 1)
|
atomic.StoreInt32(&s.closed, 1)
|
||||||
return s.session.QueueStreamFrame(&frames.StreamFrame{
|
return s.session.queueStreamFrame(&frames.StreamFrame{
|
||||||
StreamID: s.streamID,
|
StreamID: s.streamID,
|
||||||
Offset: s.writeOffset,
|
Offset: s.writeOffset,
|
||||||
FinBit: true,
|
FinBit: true,
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ type mockStreamHandler struct {
|
|||||||
frames []frames.Frame
|
frames []frames.Frame
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *mockStreamHandler) QueueStreamFrame(f *frames.StreamFrame) error {
|
func (m *mockStreamHandler) queueStreamFrame(f *frames.StreamFrame) error {
|
||||||
m.frames = append(m.frames, f)
|
m.frames = append(m.frames, f)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user