aboutsummaryrefslogtreecommitdiffstats
path: root/src/sleep_register.rs
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2017-10-30 19:18:32 -0700
committerBryan Newbold <bnewbold@robocracy.org>2017-10-30 19:18:32 -0700
commit31dc6d87d7b401742531bc4acf084a9cbf355131 (patch)
tree1ed65b10e4f7b683b0e610dba9a9e613a45d4303 /src/sleep_register.rs
parent4c68867836ba7166af88309d19e3a1e109772b2e (diff)
downloadgeniza-31dc6d87d7b401742531bc4acf084a9cbf355131.tar.gz
geniza-31dc6d87d7b401742531bc4acf084a9cbf355131.zip
replace (most) seek() code with read_at/write_at
Diffstat (limited to 'src/sleep_register.rs')
-rw-r--r--src/sleep_register.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/sleep_register.rs b/src/sleep_register.rs
index 3e1c48e..276e4c9 100644
--- a/src/sleep_register.rs
+++ b/src/sleep_register.rs
@@ -3,6 +3,7 @@ use std::io::prelude::*;
use std::fs::File;
use std::path::{Path, PathBuf};
use std::io::SeekFrom;
+use std::os::unix::fs::FileExt;
use integer_encoding::FixedInt;
use std::fs::OpenOptions;
use crypto::blake2b::Blake2b;
@@ -412,8 +413,10 @@ impl HyperRegister for SleepDirRegister {
// Read chunk
let mut data = vec![0; data_len as usize];
- data_file.seek(SeekFrom::Start(offset))?;
- data_file.read_exact(&mut data)?;
+ let got = data_file.read_at(&mut data, offset)?;
+ if got != data.len() {
+ bail!("Short file read");
+ }
// TODO: check the hash? separate function?
Ok(data)