use a separate function to restore transport parameters for 0-RTT

This commit is contained in:
Marten Seemann
2020-05-24 15:28:17 +07:00
parent 7e62a2fecc
commit a7005ac936

View File

@@ -503,7 +503,7 @@ func (s *session) run() error {
case zeroRTTParams := <-s.clientHelloWritten:
s.scheduleSending()
if zeroRTTParams != nil {
s.processTransportParameters(zeroRTTParams)
s.restoreTransportParameters(zeroRTTParams)
close(s.earlySessionReadyChan)
}
case closeErr := <-s.closeChan:
@@ -1266,6 +1266,21 @@ func (s *session) dropEncryptionLevel(encLevel protocol.EncryptionLevel) {
}
}
// is called for the client, when restoring transport parameters saved for 0-RTT
func (s *session) restoreTransportParameters(params *wire.TransportParameters) {
if s.logger.Debug() {
s.logger.Debugf("Restoring Transport Parameters: %s", params)
}
s.peerParams = params
s.connIDGenerator.SetMaxActiveConnIDs(params.ActiveConnectionIDLimit)
s.connFlowController.UpdateSendWindow(params.InitialMaxData)
if err := s.streamsMap.UpdateLimits(params); err != nil {
s.closeLocal(err)
return
}
}
func (s *session) processTransportParameters(params *wire.TransportParameters) {
if s.logger.Debug() {
s.logger.Debugf("Processed Transport Parameters: %s", params)