From a578aba450f04c1f14b953cd97c56e0f7b0829f1 Mon Sep 17 00:00:00 2001 From: andy Date: Sat, 19 Feb 2022 22:59:00 +0000 Subject: [PATCH 1/5] patch the patch server --- src/patch/patch.rs | 55 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/src/patch/patch.rs b/src/patch/patch.rs index 52dd7d2..4a43477 100644 --- a/src/patch/patch.rs +++ b/src/patch/patch.rs @@ -18,6 +18,7 @@ use crate::common::serverstate::{RecvServerPacket, SendServerPacket, ServerState pub enum PatchError { NetworkError(NetworkError), IOError(std::io::Error), + NoSuchClient(ClientId), } impl From for PatchError { @@ -135,11 +136,11 @@ impl SendServerPacket for SendPatchPacket { } } - pub struct PatchServerState { patch_file_tree: PatchFileTree, patch_file_lookup: HashMap, patch_file_info: Vec, + client_file_info: HashMap>, patch_motd: String, } @@ -149,6 +150,7 @@ impl PatchServerState { patch_file_tree, patch_file_lookup, patch_file_info: Vec::new(), + client_file_info: HashMap::new(), patch_motd, } } @@ -160,10 +162,11 @@ impl ServerState for PatchServerState { type RecvPacket = RecvPatchPacket; type PacketError = PatchError; - async fn on_connect(&mut self, _id: ClientId) -> Result>, PatchError> { + async fn on_connect(&mut self, id: ClientId) -> Result>, PatchError> { let mut rng = rand::thread_rng(); let key_in: u32 = rng.gen(); let key_out: u32 = rng.gen(); + self.client_file_info.insert(id, Vec::new()); Ok(vec![OnConnect::Packet(SendPatchPacket::PatchWelcome(PatchWelcome::new(key_out, key_in))), OnConnect::Cipher((Box::new(PSOPCCipher::new(key_in)), Box::new(PSOPCCipher::new(key_out)))) @@ -183,26 +186,39 @@ impl ServerState for PatchServerState { Box::new(p.into_iter().map(move |pkt| (id, pkt))) }, RecvPatchPacket::FileInfoReply(pkt) => { - self.patch_file_info.push(pkt.clone()); + self.client_file_info.get_mut(&id).ok_or(PatchError::NoSuchClient(id))?.push(pkt.clone()); // it should be impossible to error here under normal conditions? + // self.patch_file_info.push(pkt.clone()); + // println!("PatchServerState.patch_file_info: {:?}", self.patch_file_info); Box::new(None.into_iter().map(move |pkt| (id, pkt))) }, RecvPatchPacket::FileInfoListEnd(_pkt) => { - let need_update = self.patch_file_info.iter() - .filter(|file_info| does_file_need_updating(file_info, &self.patch_file_lookup)) - .collect::>(); - - let total_size = need_update.iter().fold(0, |a, file_info| a + file_info.size); + // let need_update = self.patch_file_info.iter() + // .filter(|file_info| does_file_need_updating(file_info, &self.patch_file_lookup)) + // .collect::>(); + println!("patch server hashmap: {:?}", self.patch_file_lookup); + let need_update = self.client_file_info.get(&id) + .ok_or(PatchError::NoSuchClient(id))? + .iter() + .filter(|client_file_info| does_file_need_updating(client_file_info, &self.patch_file_lookup)) + .collect::>(); // collecting list of `client_file_info`s. need to map these to the patch_files and collect those + println!("ClientId({}) needs these files to be updated: {:?}", id, need_update); + // we have the file ids that need to be updated + let total_size = need_update.iter() + .filter_map(|client_file| self.patch_file_lookup.get(&client_file.id)) // TODO: dont unwrap? + .fold(0, |a, file_info| a + file_info.size); let total_files = need_update.len() as u32; - + println!("client {} needs {} bytes of updates across {} files", id, total_size, total_files); let p = vec![SendPatchPacket::FilesToPatchMetadata(FilesToPatchMetadata::new(total_size, total_files)), SendPatchPacket::PatchStartList(PatchStartList {}) ]; - Box::new(p.into_iter().chain(SendFileIterator::new(self)).map(move |pkt| (id, pkt))) + println!("p: {:?}", p); + Box::new(p.into_iter().chain(SendFileIterator::new(self, need_update)).map(move |pkt| (id, pkt))) } }) } - async fn on_disconnect(&mut self, _id: ClientId) -> Result, PatchError> { + async fn on_disconnect(&mut self, id: ClientId) -> Result, PatchError> { + self.client_file_info.remove(&id); Ok(Vec::new()) } } @@ -279,9 +295,10 @@ fn get_checksum_and_size(path: &Path) -> Result<(u32, u32), PatchError> { Ok((crc.sum32(), size as u32)) } -fn does_file_need_updating(file_info: &FileInfoReply, patch_file_lookup: &HashMap) -> bool { - let patch_file = patch_file_lookup.get(&file_info.id).unwrap(); - patch_file.checksum != file_info.checksum || patch_file.size != file_info.size +fn does_file_need_updating(client_file_info: &FileInfoReply, patch_file_lookup: &HashMap) -> bool { + let patch_file = patch_file_lookup.get(&client_file_info.id).unwrap(); + println!("checking if client_file {:?} and patch_file {:?} need to be updated", client_file_info, patch_file); + patch_file.checksum != client_file_info.checksum || patch_file.size != client_file_info.size } @@ -294,9 +311,13 @@ struct SendFileIterator { } impl SendFileIterator { - fn new(state: &PatchServerState) -> SendFileIterator { - let file_ids_to_update = state.patch_file_info.iter() - .filter(|file_info| does_file_need_updating(file_info, &state.patch_file_lookup)) + fn new(state: &PatchServerState, client_file_info: Vec<&FileInfoReply>) -> SendFileIterator { + // let file_ids_to_update = state.patch_file_info.iter() + // .filter(|file_info| does_file_need_updating(file_info, &state.patch_file_lookup)) + // .map(|k| k.id) + // .collect::>(); + + let file_ids_to_update = client_file_info.iter() .map(|k| k.id) .collect::>(); -- 2.36.0 From 54a526f8c91be7ff98d12f838136e6cdfc0e5907 Mon Sep 17 00:00:00 2001 From: andy Date: Sat, 19 Feb 2022 23:01:24 +0000 Subject: [PATCH 2/5] remove comments and debug lines --- src/patch/patch.rs | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/patch/patch.rs b/src/patch/patch.rs index 4a43477..02c90f4 100644 --- a/src/patch/patch.rs +++ b/src/patch/patch.rs @@ -187,31 +187,21 @@ impl ServerState for PatchServerState { }, RecvPatchPacket::FileInfoReply(pkt) => { self.client_file_info.get_mut(&id).ok_or(PatchError::NoSuchClient(id))?.push(pkt.clone()); // it should be impossible to error here under normal conditions? - // self.patch_file_info.push(pkt.clone()); - // println!("PatchServerState.patch_file_info: {:?}", self.patch_file_info); Box::new(None.into_iter().map(move |pkt| (id, pkt))) }, RecvPatchPacket::FileInfoListEnd(_pkt) => { - // let need_update = self.patch_file_info.iter() - // .filter(|file_info| does_file_need_updating(file_info, &self.patch_file_lookup)) - // .collect::>(); - println!("patch server hashmap: {:?}", self.patch_file_lookup); let need_update = self.client_file_info.get(&id) .ok_or(PatchError::NoSuchClient(id))? .iter() .filter(|client_file_info| does_file_need_updating(client_file_info, &self.patch_file_lookup)) - .collect::>(); // collecting list of `client_file_info`s. need to map these to the patch_files and collect those - println!("ClientId({}) needs these files to be updated: {:?}", id, need_update); - // we have the file ids that need to be updated + .collect::>(); let total_size = need_update.iter() .filter_map(|client_file| self.patch_file_lookup.get(&client_file.id)) // TODO: dont unwrap? .fold(0, |a, file_info| a + file_info.size); let total_files = need_update.len() as u32; - println!("client {} needs {} bytes of updates across {} files", id, total_size, total_files); let p = vec![SendPatchPacket::FilesToPatchMetadata(FilesToPatchMetadata::new(total_size, total_files)), SendPatchPacket::PatchStartList(PatchStartList {}) ]; - println!("p: {:?}", p); Box::new(p.into_iter().chain(SendFileIterator::new(self, need_update)).map(move |pkt| (id, pkt))) } }) @@ -297,7 +287,6 @@ fn get_checksum_and_size(path: &Path) -> Result<(u32, u32), PatchError> { fn does_file_need_updating(client_file_info: &FileInfoReply, patch_file_lookup: &HashMap) -> bool { let patch_file = patch_file_lookup.get(&client_file_info.id).unwrap(); - println!("checking if client_file {:?} and patch_file {:?} need to be updated", client_file_info, patch_file); patch_file.checksum != client_file_info.checksum || patch_file.size != client_file_info.size } @@ -312,11 +301,6 @@ struct SendFileIterator { impl SendFileIterator { fn new(state: &PatchServerState, client_file_info: Vec<&FileInfoReply>) -> SendFileIterator { - // let file_ids_to_update = state.patch_file_info.iter() - // .filter(|file_info| does_file_need_updating(file_info, &state.patch_file_lookup)) - // .map(|k| k.id) - // .collect::>(); - let file_ids_to_update = client_file_info.iter() .map(|k| k.id) .collect::>(); -- 2.36.0 From 814fc986d9c850a8b6099e788db3d5be1b1df825 Mon Sep 17 00:00:00 2001 From: andy Date: Sat, 19 Feb 2022 23:12:54 +0000 Subject: [PATCH 3/5] remove now-unused patch_file_info --- src/patch/patch.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/patch/patch.rs b/src/patch/patch.rs index 02c90f4..e72b30c 100644 --- a/src/patch/patch.rs +++ b/src/patch/patch.rs @@ -139,7 +139,6 @@ impl SendServerPacket for SendPatchPacket { pub struct PatchServerState { patch_file_tree: PatchFileTree, patch_file_lookup: HashMap, - patch_file_info: Vec, client_file_info: HashMap>, patch_motd: String, } @@ -149,7 +148,6 @@ impl PatchServerState { PatchServerState { patch_file_tree, patch_file_lookup, - patch_file_info: Vec::new(), client_file_info: HashMap::new(), patch_motd, } -- 2.36.0 From 651d5e1e42965717b19ca8f494a925532c9e7370 Mon Sep 17 00:00:00 2001 From: andy Date: Wed, 11 May 2022 00:22:22 +0000 Subject: [PATCH 4/5] add correct unitxt file for units --- patchfiles/data/unitxt_j.prs | Bin 0 -> 71827 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 patchfiles/data/unitxt_j.prs diff --git a/patchfiles/data/unitxt_j.prs b/patchfiles/data/unitxt_j.prs new file mode 100644 index 0000000000000000000000000000000000000000..512a01297ea6fbc72ed114ca720c9e9884097d11 GIT binary patch literal 71827 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 Date: Wed, 11 May 2022 23:50:18 +0000 Subject: [PATCH 5/5] based clippy --- src/lib.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 76e1020..b8ceb02 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,8 +1,6 @@ #![allow(incomplete_features)] -#![feature(maybe_uninit_extra)] #![feature(inline_const)] #![feature(drain_filter)] -#![feature(derive_default_enum)] #![feature(try_blocks)] -- 2.36.0