pijul nest
guest [sign in]

Updating thrussh-config to make it usable in real projects

[?]
Nov 27, 2020, 6:50 PM
2Q2DF2ROXVXS4WCJ3HTYPHMWFBIZLDYHMNFUODWBI7RACKFNFNZQC

Dependencies

  • [2] 7FRJYUI6 Reboot because of a bad change

Change contents

  • edit in thrussh-config/src/lib.rs at line 9
    [2.161244]
    [2.161244]
    use std::net::ToSocketAddrs;
  • replacement in thrussh-config/src/lib.rs at line 31
    [2.161601][2.161601:161663]()
    pub host_name: Option<String>,
    pub port: Option<u16>,
    [2.161601]
    [2.161663]
    pub host_name: String,
    pub port: u16,
  • replacement in thrussh-config/src/lib.rs at line 39
    [2.161801][2.161801:162014]()
    pub fn update_proxy_command(&mut self) {
    if let Some(ref h) = self.host_name {
    if let Some(ref mut prox) = self.proxy_command {
    *prox = prox.replace("%h", h);
    }
    [2.161801]
    [2.162014]
    fn update_proxy_command(&mut self) {
    if let Some(ref mut prox) = self.proxy_command {
    *prox = prox.replace("%h", &self.host_name);
    *prox = prox.replace("%p", &format!("{}", self.port));
  • replacement in thrussh-config/src/lib.rs at line 44
    [2.162024][2.162024:162203]()
    if let Some(ref p) = self.port {
    if let Some(ref mut prox) = self.proxy_command {
    *prox = prox.replace("%p", &format!("{}", p));
    }
    [2.162024]
    [2.162203]
    }
    pub async fn stream(&mut self) -> Result<Stream, std::io::Error> {
    self.update_proxy_command();
    if let Some(ref proxy_command) = self.proxy_command {
    let cmd: Vec<&str> = proxy_command.split(' ').collect();
    Stream::proxy_command(cmd[0], &cmd[1..]).await
    } else {
    Stream::tcp_connect(&(self.host_name.as_str(), self.port).to_socket_addrs()?.next().unwrap()).await
  • replacement in thrussh-config/src/lib.rs at line 100
    [2.163424][2.163424:163592]()
    "hostname" => config.host_name = Some(value.trim_start().to_string()),
    "port" => config.port = value.trim_start().parse().ok(),
    [2.163424]
    [2.163592]
    "hostname" => {
    config.host_name.clear();
    config.host_name.push_str(value.trim_start())
    },
    "port" => if let Ok(port) = value.trim_start().parse() {
    config.port = port
    },
  • replacement in thrussh-config/src/lib.rs at line 123
    [2.164480][2.164480:164541]()
    config = Some(Config::default())
    [2.164480]
    [2.164541]
    let mut c = Config::default();
    c.host_name.push_str(host);
    c.port = 22;
    config = Some(c)