fixed #1889, .DS_Store is no longer treated as key file (#1892)

* fixed #1889, .DS_Store is no longer treated as key file

* ethstore filters directories, hidden files and common system files

* fixed compiling
This commit is contained in:
Marek Kotewicz 2016-08-10 16:42:15 +02:00 committed by Gav Wood
parent a427208f79
commit 464516d01d

View File

@ -22,6 +22,8 @@ use ethkey::Address;
use {json, SafeAccount, Error}; use {json, SafeAccount, Error};
use super::KeyDirectory; use super::KeyDirectory;
const IGNORED_FILES: &'static [&'static str] = &["thumbs.db"];
#[cfg(not(windows))] #[cfg(not(windows))]
fn restrict_permissions_to_owner(file_path: &Path) -> Result<(), i32> { fn restrict_permissions_to_owner(file_path: &Path) -> Result<(), i32> {
use std::ffi; use std::ffi;
@ -62,7 +64,14 @@ impl DiskDirectory {
.flat_map(Result::ok) .flat_map(Result::ok)
.filter(|entry| { .filter(|entry| {
let metadata = entry.metadata(); let metadata = entry.metadata();
metadata.is_ok() && !metadata.unwrap().is_dir() let file_name = entry.file_name();
let name = file_name.to_str().unwrap();
// filter directories
metadata.is_ok() && !metadata.unwrap().is_dir() &&
// hidden files
!name.starts_with(".") &&
// other ignored files
!IGNORED_FILES.contains(&name)
}) })
.map(|entry| entry.path()) .map(|entry| entry.path())
.collect::<Vec<PathBuf>>(); .collect::<Vec<PathBuf>>();