fix out of boudns
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
use client_network::{
|
||||
ChunkNode, MerkleNode, MerkleTree, NetworkCommand, NetworkEvent, NodeHash,
|
||||
big_or_chunk_to_file, filename_to_string, generate_base_tree, node_hash_to_hex_string,
|
||||
remove_null_bytes,
|
||||
node_to_file, remove_null_bytes,
|
||||
};
|
||||
use crossbeam_channel::{Receiver, Sender};
|
||||
use egui::{
|
||||
@@ -258,10 +258,11 @@ impl eframe::App for P2PClientApp {
|
||||
self.loading_peers.retain(|s| s != peer_username.as_str());
|
||||
self.show_error(err, peer_username);
|
||||
}
|
||||
NetworkEvent::InitDownload(hash, ip) => {
|
||||
NetworkEvent::InitDownload(hash, ip, name) => {
|
||||
if let Some(addr) = &self.active_peer {
|
||||
if let Some(roottree) = self.loaded_fs.get(addr) {
|
||||
if let Some(root) = roottree.data.get(&hash) {
|
||||
self.root_downloading_file = name;
|
||||
let _ = self
|
||||
.current_downloading_file_map
|
||||
.data
|
||||
@@ -299,6 +300,29 @@ impl eframe::App for P2PClientApp {
|
||||
_ => {}
|
||||
}
|
||||
if self.remaining_chunks.is_empty() {
|
||||
/*let file = OpenOptions::new()
|
||||
.append(true)
|
||||
.create(true)
|
||||
.open(self.root_downloading_file.clone());
|
||||
|
||||
if let Some(current) = self
|
||||
.current_downloading_file_map
|
||||
.data
|
||||
.get(&self.current_downloading_file_map.root)
|
||||
{
|
||||
match file {
|
||||
Ok(mut fileok) => {
|
||||
big_or_chunk_to_file(
|
||||
&self.current_downloading_file_map,
|
||||
current,
|
||||
&mut fileok,
|
||||
);
|
||||
}
|
||||
Err(e) => {
|
||||
eprintln!("error creaation file: {}", e);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
println!("bigfile téléchargé");
|
||||
}
|
||||
}
|
||||
@@ -797,10 +821,16 @@ impl P2PClientApp {
|
||||
.on_hover_text("Click to request file chunks...")
|
||||
.clicked()
|
||||
{
|
||||
if let Some(addr) = &self.active_peer {
|
||||
let _ = self
|
||||
.network_cmd_tx
|
||||
.send(NetworkCommand::InitDownload(to_draw, addr.clone()));
|
||||
if let Some(name) = filename {
|
||||
if let Ok(nameb) = String::from_utf8(name.to_vec()) {
|
||||
if let Some(addr) = &self.active_peer {
|
||||
let _ = self.network_cmd_tx.send(NetworkCommand::InitDownload(
|
||||
to_draw,
|
||||
addr.clone(),
|
||||
nameb,
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user