Add write support
This commit is contained in:
parent
cf389c13d0
commit
8dc225dfb0
10
Cargo.lock
generated
10
Cargo.lock
generated
@ -321,18 +321,18 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.210"
|
||||
version = "1.0.218"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.210"
|
||||
version = "1.0.218"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.79",
|
||||
"syn 2.0.87",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -387,9 +387,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.79"
|
||||
version = "2.0.87"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
|
||||
checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
13
src/main.rs
13
src/main.rs
@ -80,8 +80,17 @@ impl file_rpc::Server for Serv {
|
||||
.into())
|
||||
}
|
||||
|
||||
fn write(&self, _fd: u64, _data: &[u8]) -> Result<(), Errno> {
|
||||
todo!()
|
||||
fn write(&self, fd: u64, data: &[u8]) -> Result<(), Errno> {
|
||||
let file = &*self.open_files.get(fd as usize).ok_or(Errno::EBADF)?;
|
||||
if file.pos.load(Ordering::Relaxed).saturating_add(data.len() as u64) > file.part_len as u64 {
|
||||
return Err(Errno::EINVAL);
|
||||
}
|
||||
|
||||
let file_client = file_rpc::Client::new(file.drive_file.0);
|
||||
file_client.seek(file.drive_file.1, file_rpc::SeekFrom::Start(file.offset + file.pos.load(Ordering::Relaxed)))?;
|
||||
Ok(file_client
|
||||
.write(file.drive_file.1, &data)?
|
||||
.into())
|
||||
}
|
||||
|
||||
fn close(&self, _fd: u64) -> Result<(), Errno> { Ok(()) }
|
||||
|
Loading…
x
Reference in New Issue
Block a user