fix: Symlink Detection

This commit is contained in:
Ahmet Kaan GÜMÜŞ 2023-11-04 20:59:16 +03:00
parent 59c2997dc2
commit ccc2dbc547

View file

@ -82,7 +82,9 @@ impl FileInfo
{ {
//Recursivity Problem //Recursivity Problem
println!("\n\tError: Symlink Transfers've not Supported yet\n"); println!("\n\tError: Symlink Transfers've not Supported yet\n");
return; //return;
self.open_file(debug_mode);
self.send_file(stream, debug_mode);
} }
else if Metadata::is_file(metadata) else if Metadata::is_file(metadata)
{ {
@ -123,19 +125,37 @@ impl FileInfo
} }
fn read_metadata(&mut self, debug_mode:&bool) fn read_metadata(&mut self, debug_mode:&bool)
{ {
match fs::metadata(&self.location.as_ref().unwrap()) let path = PathBuf::from(self.location.as_ref().unwrap());
if path.is_symlink()
{ {
Ok(metadata) => match path.symlink_metadata()
{ {
self.metadata = Some(metadata); Ok(metadata) =>
if *debug_mode
{ {
println!("Done: Read Metadata -> {:#?}", self.metadata); self.metadata = Some(metadata);
}
Err(err_val) =>
{
println!("Error: Symlink Metadata -> {:#?} | Error: {}", &self.location, err_val);
} }
} }
Err(err_val) => }
else
{
match fs::metadata(&self.location.as_ref().unwrap())
{ {
println!("Error: Read Metadata -> {} | Error: {}", &self.location.as_ref().unwrap(), err_val); Ok(metadata) =>
{
self.metadata = Some(metadata);
if *debug_mode
{
println!("Done: Read Metadata -> {:#?}", self.metadata);
}
}
Err(err_val) =>
{
println!("Error: Read Metadata -> {} | Error: {}", &self.location.as_ref().unwrap(), err_val);
}
} }
} }
} }