os fix on ssh tunneling

This commit is contained in:
dal 2025-05-07 08:54:21 -06:00
parent 1b16398413
commit d8ea573c56
No known key found for this signature in database
GPG Key ID: 16F4B0E1E9F61122
1 changed files with 26 additions and 22 deletions

View File

@ -4,9 +4,10 @@ use std::{
fs,
io::Write,
net::TcpListener,
os::unix::fs::PermissionsExt,
process::{Child, Command},
};
#[cfg(unix)]
use std::os::unix::fs::PermissionsExt;
use tempfile::NamedTempFile;
pub fn establish_ssh_tunnel(
@ -61,29 +62,32 @@ pub fn establish_ssh_tunnel(
}
};
let mut perms = match fs::metadata(temp_ssh_key.path()) {
Ok(p) => p.permissions(),
Err(e) => {
tracing::error!(
"There was a problem while getting the metadata of the temp file: {}",
e
);
return Err(anyhow!(e));
}
};
#[cfg(unix)]
{
let mut perms = match fs::metadata(temp_ssh_key.path()) {
Ok(p) => p.permissions(),
Err(e) => {
tracing::error!(
"There was a problem while getting the metadata of the temp file: {}",
e
);
return Err(anyhow!(e));
}
};
perms.set_mode(0o600);
perms.set_mode(0o600);
match fs::set_permissions(temp_ssh_key.path(), perms) {
Ok(_) => {}
Err(e) => {
tracing::error!(
"There was a problem while setting the permissions of the temp file: {}",
e
);
return Err(anyhow!(e));
}
};
match fs::set_permissions(temp_ssh_key.path(), perms) {
Ok(_) => {}
Err(e) => {
tracing::error!(
"There was a problem while setting the permissions of the temp file: {}",
e
);
return Err(anyhow!(e));
}
};
}
let ssh_tunnel = match Command::new("ssh")
.arg("-T")