1
0
mirror of https://github.com/fafhrd91/actix-web synced 2025-01-18 22:01:50 +01:00

fix dispatcher panic when conbining pipelining and keepalive

fixes #2678
This commit is contained in:
Rob Ede 2022-03-04 03:12:38 +00:00
parent 955c3ac0c4
commit 49cd303c3b
No known key found for this signature in database
GPG Key ID: 97C636207D3EF933

View File

@ -375,8 +375,6 @@ where
DispatchError::Io(err) DispatchError::Io(err)
})?; })?;
this.flags.set(Flags::KEEP_ALIVE, this.codec.keep_alive());
Ok(size) Ok(size)
} }
@ -459,7 +457,12 @@ where
} }
// all messages are dealt with // all messages are dealt with
None => return Ok(PollResponse::DoNothing), None => {
// start keep-alive if last request allowed it
this.flags.set(Flags::KEEP_ALIVE, this.codec.keep_alive());
return Ok(PollResponse::DoNothing);
}
}, },
StateProj::ServiceCall { fut } => { StateProj::ServiceCall { fut } => {
@ -757,6 +760,7 @@ where
let mut updated = false; let mut updated = false;
// decode from read buf as many full requests as possible
loop { loop {
match this.codec.decode(this.read_buf) { match this.codec.decode(this.read_buf) {
Ok(Some(msg)) => { Ok(Some(msg)) => {