forked from quic-go/quic-go
move the unencrypted STREAM frame check from the unpacker to the session
This commit is contained in:
@@ -572,7 +572,7 @@ func (s *session) handleFrames(fs []wire.Frame, encLevel protocol.EncryptionLeve
|
||||
wire.LogFrame(ff, false)
|
||||
switch frame := ff.(type) {
|
||||
case *wire.StreamFrame:
|
||||
err = s.handleStreamFrame(frame)
|
||||
err = s.handleStreamFrame(frame, encLevel)
|
||||
case *wire.AckFrame:
|
||||
err = s.handleAckFrame(frame, encLevel)
|
||||
case *wire.ConnectionCloseFrame:
|
||||
@@ -615,12 +615,14 @@ func (s *session) handlePacket(p *receivedPacket) {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *session) handleStreamFrame(frame *wire.StreamFrame) error {
|
||||
func (s *session) handleStreamFrame(frame *wire.StreamFrame, encLevel protocol.EncryptionLevel) error {
|
||||
if frame.StreamID == s.version.CryptoStreamID() {
|
||||
if frame.FinBit {
|
||||
return errors.New("Received STREAM frame with FIN bit for the crypto stream")
|
||||
}
|
||||
return s.cryptoStream.handleStreamFrame(frame)
|
||||
} else if encLevel <= protocol.EncryptionUnencrypted {
|
||||
return qerr.Error(qerr.UnencryptedStreamData, fmt.Sprintf("received unencrypted stream data on stream %d", frame.StreamID))
|
||||
}
|
||||
str, err := s.streamsMap.GetOrOpenReceiveStream(frame.StreamID)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user