diff options
Diffstat (limited to 'oxish/src')
| -rw-r--r-- | oxish/src/session/mod.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/oxish/src/session/mod.rs b/oxish/src/session/mod.rs index 1fdd95c..b61bdeb 100644 --- a/oxish/src/session/mod.rs +++ b/oxish/src/session/mod.rs @@ -10,7 +10,8 @@ use std::{ }; use proto::{ - Decoded, Disconnect, Encoder, MessageType, Pretty, ReadState, SessionHostKey, WriteState, + Decoded, Disconnect, Encoder, GlobalRequest, MessageType, Pretty, ReadState, SessionHostKey, + WriteState, channels::{ChannelRequest, ChannelRequestType}, crypto::CryptoProvider, key_exchange::Rekey, @@ -214,6 +215,18 @@ impl<T: AsyncRead + AsyncWrite + Unpin> Session<T> { self.post_quantum_kx = post_quantum_kx; continue; } + MessageType::GlobalRequest => { + let request = GlobalRequest::try_from(packet)?; + debug!(name = %String::from_utf8_lossy(request.name), "refusing unsupported global request"); + if request.want_reply { + self.conn.send(&MessageType::RequestFailure).await?; + } + continue; + } + MessageType::RequestSuccess | MessageType::RequestFailure => { + trace!(?packet.message_type, "ignoring unexpected global request reply"); + continue; + } _ => {} } |
