Buffering non-kex packets received after issuing a KEXINIT
Dependencies
- [2]
J4ZEHJHGFlush pending packets after a key re-exchange - [3]
662ZS5JFVersion 0.33.2 - [4]
PDTFLA4YVersion 0.30.7 - [5]
CWHVPLXNVersion bump - [6]
BRDS7STAAdding method `send_channel_msg` to client::Session, to make it easier to write handlers - [7]
7Y2ROIVZVersion bump - [8]
DJT33BQEVersion bump - [9]
E2SB74SVVersion 0.30.3 - [10]
CQSPFH4HVersion 0.30.4 - [11]
634OYCNMTokio 0.3 - [12]
7FRJYUI6Reboot because of a bad change - [13]
TFYJ3P2AVersion 0.30.8/0.19.4, and solving conflicts - [14]
2WEO7OZLVersion updates: getting rid of anyhow + moving to Tokio 1.0 - [15]
ASD7JVBEDo not read past the size of the buffer (after Tokio 0.3) - [16]
2VTUKRLJVersion - [17]
WXZWQLGLCorrect negotiation without OpenSSL - [18]
FT67GGO4Version bump (Pijul and Thrussh) - [19]
VYDCQWSFVersion 0.30.6 - [20]
ORSEEVB5Version bump
Change contents
- edit in thrussh/src/server/session.rs at line 13
pub(crate) pending_reads: Vec<CryptoVec>, - edit in thrussh/src/server/mod.rs at line 477
pending_reads: Vec::new(), - edit in thrussh/src/server/encrypted.rs at line 35
let instant = tokio::time::Instant::now() + self.common.config.auth_rejection_time; - edit in thrussh/src/server/encrypted.rs at line 52
self.flush()?; - edit in thrussh/src/server/encrypted.rs at line 89
let mut pending = std::mem::replace(&mut self.pending_reads, Vec::new());for p in pending.drain(..) {self = self.process_packet(handler, &p).await?}self.pending_reads = pending; - replacement in thrussh/src/server/encrypted.rs at line 98
rek => enc.rekey = rek,Some(Kex::KexInit(k)) => {enc.rekey = Some(Kex::KexInit(k));self.pending_reads.push(CryptoVec::from_slice(buf));return Ok(self);}rek => {debug!("rek = {:?}", rek);enc.rekey = rek}, - edit in thrussh/src/server/encrypted.rs at line 108
self.process_packet(handler, buf).await} - edit in thrussh/src/server/encrypted.rs at line 111
async fn process_packet<H: Handler>(mut self,handler: &mut Option<H>,buf: &[u8],) -> Result<Self, H::Error> {let instant = tokio::time::Instant::now() + self.common.config.auth_rejection_time;let mut enc = self.common.encrypted.as_mut().unwrap(); - edit in thrussh/src/client/mod.rs at line 52
pending_reads: Vec<CryptoVec>, - edit in thrussh/src/client/mod.rs at line 811
pending_reads: Vec::new(), - edit in thrussh/src/client/encrypted.rs at line 54
self.flush()?; - edit in thrussh/src/client/encrypted.rs at line 103
let mut pending = std::mem::replace(&mut self.pending_reads, Vec::new());for p in pending.drain(..) {self = self.process_packet(client, &p).await?}self.pending_reads = pending; - edit in thrussh/src/client/encrypted.rs at line 110
return Ok(self);}Some(Kex::KexInit(k)) => {enc.rekey = Some(Kex::KexInit(k));self.pending_reads.push(CryptoVec::from_slice(buf)); - edit in thrussh/src/client/encrypted.rs at line 120
self.process_packet(client, buf).await} - edit in thrussh/src/client/encrypted.rs at line 123
async fn process_packet<H: super::Handler>(mut self,client: &mut Option<H>,buf: &[u8],) -> Result<Self, H::Error> { - replacement in thrussh/Cargo.toml at line 5
version = "0.33.2"version = "0.33.3"