Add native local port forwarding
This commit is contained in:
@@ -30,6 +30,13 @@ pub enum PacketKind {
|
||||
NativeServerHello = 15,
|
||||
NativeUserAuth = 16,
|
||||
NativeAuthOk = 17,
|
||||
StreamOpen = 18,
|
||||
StreamOpenOk = 19,
|
||||
StreamOpenReject = 20,
|
||||
StreamData = 21,
|
||||
StreamWindowAdjust = 22,
|
||||
StreamEof = 23,
|
||||
StreamClose = 24,
|
||||
}
|
||||
|
||||
impl TryFrom<u8> for PacketKind {
|
||||
@@ -54,6 +61,13 @@ impl TryFrom<u8> for PacketKind {
|
||||
15 => Self::NativeServerHello,
|
||||
16 => Self::NativeUserAuth,
|
||||
17 => Self::NativeAuthOk,
|
||||
18 => Self::StreamOpen,
|
||||
19 => Self::StreamOpenOk,
|
||||
20 => Self::StreamOpenReject,
|
||||
21 => Self::StreamData,
|
||||
22 => Self::StreamWindowAdjust,
|
||||
23 => Self::StreamEof,
|
||||
24 => Self::StreamClose,
|
||||
_ => bail!("unknown packet kind {value}"),
|
||||
})
|
||||
}
|
||||
@@ -278,6 +292,46 @@ pub struct Resize {
|
||||
pub rows: u16,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct StreamOpen {
|
||||
pub stream_id: u64,
|
||||
pub target_host: String,
|
||||
pub target_port: u16,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct StreamOpenOk {
|
||||
pub stream_id: u64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct StreamOpenReject {
|
||||
pub stream_id: u64,
|
||||
pub reason: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct StreamData {
|
||||
pub stream_id: u64,
|
||||
pub bytes: Vec<u8>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct StreamWindowAdjust {
|
||||
pub stream_id: u64,
|
||||
pub bytes: u32,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct StreamEof {
|
||||
pub stream_id: u64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct StreamClose {
|
||||
pub stream_id: u64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct Frame {
|
||||
pub session: String,
|
||||
|
||||
Reference in New Issue
Block a user