From 74e1707722325f9c97b42c56fb710744528b11f1 Mon Sep 17 00:00:00 2001 From: troido Date: Thu, 5 Mar 2020 18:35:11 +0100 Subject: longer temp filename --- src/persistence.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/persistence.rs b/src/persistence.rs index f1ed845..2903ec6 100644 --- a/src/persistence.rs +++ b/src/persistence.rs @@ -9,7 +9,8 @@ use crate::{ RoomId, savestate::SaveState, playerstate::PlayerState, - Result + Result, + aerr }; pub trait PersistentStorage { @@ -103,7 +104,15 @@ impl PersistentStorage for FileStorage { } fn write_file_safe, C: AsRef<[u8]>>(path: P, contents: C) -> Result<()> { - let temppath = path.as_ref().with_file_name(format!("tempfile_{}.tmp", rand::random::())); + let temppath = path + .as_ref() + .with_file_name( + format!( + "tempfile_{}_{}.tmp", + path.as_ref().file_name().ok_or(aerr!("writing to directory"))?.to_str().unwrap_or("invalid"), + rand::random::() + ) + ); fs::write(&temppath, contents)?; fs::rename(&temppath, path)?; Ok(()) -- cgit