forked from quic-go/quic-go
move queueing of control frames to the framer
This commit is contained in:
28
session.go
28
session.go
@@ -92,7 +92,7 @@ type session struct {
|
||||
|
||||
sentPacketHandler ackhandler.SentPacketHandler
|
||||
receivedPacketHandler ackhandler.ReceivedPacketHandler
|
||||
streamFramer *streamFramer
|
||||
framer *framer
|
||||
windowUpdateQueue *windowUpdateQueue
|
||||
connFlowController flowcontrol.ConnectionFlowController
|
||||
|
||||
@@ -205,7 +205,7 @@ func newSession(
|
||||
s.cryptoStreamHandler = cs
|
||||
s.unpacker = newPacketUnpackerGQUIC(cs, s.version)
|
||||
s.streamsMap = newStreamsMapLegacy(s.newStream, s.config.MaxIncomingStreams, s.perspective)
|
||||
s.streamFramer = newStreamFramer(s.cryptoStream, s.streamsMap, s.version)
|
||||
s.framer = newFramer(s.cryptoStream, s.streamsMap, s.version)
|
||||
s.packer = newPacketPacker(
|
||||
destConnID,
|
||||
srcConnID,
|
||||
@@ -215,7 +215,7 @@ func newSession(
|
||||
nil, // no token
|
||||
divNonce,
|
||||
cs,
|
||||
s.streamFramer,
|
||||
s.framer,
|
||||
sentAndReceivedPacketManager{s.sentPacketHandler, s.receivedPacketHandler},
|
||||
s.perspective,
|
||||
s.version,
|
||||
@@ -279,7 +279,7 @@ var newClientSession = func(
|
||||
s.cryptoStreamHandler = cs
|
||||
s.unpacker = newPacketUnpackerGQUIC(cs, s.version)
|
||||
s.streamsMap = newStreamsMapLegacy(s.newStream, s.config.MaxIncomingStreams, s.perspective)
|
||||
s.streamFramer = newStreamFramer(s.cryptoStream, s.streamsMap, s.version)
|
||||
s.framer = newFramer(s.cryptoStream, s.streamsMap, s.version)
|
||||
s.packer = newPacketPacker(
|
||||
destConnID,
|
||||
srcConnID,
|
||||
@@ -289,7 +289,7 @@ var newClientSession = func(
|
||||
nil, // no token
|
||||
nil, // no diversification nonce
|
||||
cs,
|
||||
s.streamFramer,
|
||||
s.framer,
|
||||
sentAndReceivedPacketManager{s.sentPacketHandler, s.receivedPacketHandler},
|
||||
s.perspective,
|
||||
s.version,
|
||||
@@ -335,7 +335,7 @@ func newTLSServerSession(
|
||||
}
|
||||
s.cryptoStreamHandler = cs
|
||||
s.streamsMap = newStreamsMap(s, s.newFlowController, s.config.MaxIncomingStreams, s.config.MaxIncomingUniStreams, s.perspective, s.version)
|
||||
s.streamFramer = newStreamFramer(s.cryptoStream, s.streamsMap, s.version)
|
||||
s.framer = newFramer(s.cryptoStream, s.streamsMap, s.version)
|
||||
s.packer = newPacketPacker(
|
||||
s.destConnID,
|
||||
s.srcConnID,
|
||||
@@ -345,7 +345,7 @@ func newTLSServerSession(
|
||||
nil, // no token
|
||||
nil, // no diversification nonce
|
||||
cs,
|
||||
s.streamFramer,
|
||||
s.framer,
|
||||
sentAndReceivedPacketManager{s.sentPacketHandler, s.receivedPacketHandler},
|
||||
s.perspective,
|
||||
s.version,
|
||||
@@ -400,7 +400,7 @@ var newTLSClientSession = func(
|
||||
s.cryptoStreamHandler = cs
|
||||
s.unpacker = newPacketUnpacker(cs, s.version)
|
||||
s.streamsMap = newStreamsMap(s, s.newFlowController, s.config.MaxIncomingStreams, s.config.MaxIncomingUniStreams, s.perspective, s.version)
|
||||
s.streamFramer = newStreamFramer(s.cryptoStream, s.streamsMap, s.version)
|
||||
s.framer = newFramer(s.cryptoStream, s.streamsMap, s.version)
|
||||
s.packer = newPacketPacker(
|
||||
s.destConnID,
|
||||
s.srcConnID,
|
||||
@@ -410,7 +410,7 @@ var newTLSClientSession = func(
|
||||
token,
|
||||
nil, // no diversification nonce
|
||||
cs,
|
||||
s.streamFramer,
|
||||
s.framer,
|
||||
sentAndReceivedPacketManager{s.sentPacketHandler, s.receivedPacketHandler},
|
||||
s.perspective,
|
||||
s.version,
|
||||
@@ -444,7 +444,7 @@ func (s *session) postSetup() error {
|
||||
s.lastNetworkActivityTime = now
|
||||
s.sessionCreationTime = now
|
||||
|
||||
s.windowUpdateQueue = newWindowUpdateQueue(s.streamsMap, s.connFlowController, s.packer.QueueControlFrame)
|
||||
s.windowUpdateQueue = newWindowUpdateQueue(s.streamsMap, s.connFlowController, s.framer.QueueControlFrame)
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -522,7 +522,7 @@ runLoop:
|
||||
if s.config.KeepAlive && !s.keepAlivePingSent && s.handshakeComplete && time.Since(s.lastNetworkActivityTime) >= s.peerParams.IdleTimeout/2 {
|
||||
// send a PING frame since there is no activity in the session
|
||||
s.logger.Debugf("Sending a keep-alive ping to keep the connection alive.")
|
||||
s.packer.QueueControlFrame(&wire.PingFrame{})
|
||||
s.framer.QueueControlFrame(&wire.PingFrame{})
|
||||
s.keepAlivePingSent = true
|
||||
} else if !pacingDeadline.IsZero() && now.Before(pacingDeadline) {
|
||||
// If we get to this point before the pacing deadline, we should wait until that deadline.
|
||||
@@ -1067,7 +1067,7 @@ func (s *session) sendProbePacket() error {
|
||||
|
||||
func (s *session) sendPacket() (bool, error) {
|
||||
if isBlocked, offset := s.connFlowController.IsNewlyBlocked(); isBlocked {
|
||||
s.packer.QueueControlFrame(&wire.BlockedFrame{Offset: offset})
|
||||
s.framer.QueueControlFrame(&wire.BlockedFrame{Offset: offset})
|
||||
}
|
||||
s.windowUpdateQueue.QueueAll()
|
||||
|
||||
@@ -1231,7 +1231,7 @@ func (s *session) tryDecryptingQueuedPackets() {
|
||||
}
|
||||
|
||||
func (s *session) queueControlFrame(f wire.Frame) {
|
||||
s.packer.QueueControlFrame(f)
|
||||
s.framer.QueueControlFrame(f)
|
||||
s.scheduleSending()
|
||||
}
|
||||
|
||||
@@ -1246,7 +1246,7 @@ func (s *session) onHasConnectionWindowUpdate() {
|
||||
}
|
||||
|
||||
func (s *session) onHasStreamData(id protocol.StreamID) {
|
||||
s.streamFramer.AddActiveStream(id)
|
||||
s.framer.AddActiveStream(id)
|
||||
s.scheduleSending()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user