file-restore: don't list non-pxar/-img *idx archives

These can't be entered or restored anyway, and cause issues with catalog
files for example.

Also a clippy fix.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
This commit is contained in:
Stefan Reiter 2021-04-21 15:18:06 +02:00 committed by Thomas Lamprecht
parent 9104152a83
commit 2fd2d29281

View File

@ -56,7 +56,7 @@ fn parse_path(path: String, base64: bool) -> Result<ExtractPath, Error> {
return Ok(ExtractPath::ListArchives); return Ok(ExtractPath::ListArchives);
} }
while bytes.len() > 0 && bytes[0] == b'/' { while !bytes.is_empty() && bytes[0] == b'/' {
bytes.remove(0); bytes.remove(0);
} }
@ -170,10 +170,8 @@ async fn list(
ExtractPath::ListArchives => { ExtractPath::ListArchives => {
let mut entries = vec![]; let mut entries = vec![];
for file in manifest.files() { for file in manifest.files() {
match file.filename.rsplitn(2, '.').next().unwrap() { if !file.filename.ends_with(".pxar.didx") && !file.filename.ends_with(".img.fidx") {
"didx" => {} continue;
"fidx" => {}
_ => continue, // ignore all non fidx/didx
} }
let path = format!("/{}", file.filename); let path = format!("/{}", file.filename);
let attr = DirEntryAttribute::Directory { start: 0 }; let attr = DirEntryAttribute::Directory { start: 0 };