code tidy

This commit is contained in:
Tiago Batista Cardoso
2026-01-25 14:22:20 +01:00
parent 55a0eb21bb
commit 15bfbcd0d4
12 changed files with 124 additions and 537 deletions

View File

@@ -1,6 +1,5 @@
mod cryptographic_signature;
mod data;
mod datum_generation;
mod datum_parsing;
mod fetchsocketaddresserror;
mod message_handling;
@@ -21,18 +20,16 @@ use crate::{
message_handling::EventType,
messages_channels::{MultipleSenders, start_receving_thread, start_retry_thread},
messages_structure::{
DATUM, DATUMREQUEST, NATTRAVERSALREQUEST, NATTRAVERSALREQUEST2, NODATUM, PING, ROOTREQUEST,
construct_message,
DATUM, DATUMREQUEST, NATTRAVERSALREQUEST, NODATUM, PING, ROOTREQUEST, construct_message,
},
peers_refresh::HandshakeHistory,
registration::{parse_addresses, perform_handshake, register_with_the_server},
server_communication::{generate_id, get_peer_list},
threads_handling::Worker,
};
use std::collections::HashSet;
use std::{
io::Error,
net::{IpAddr, Ipv4Addr, UdpSocket},
net::{IpAddr, UdpSocket},
time::Duration,
};
use std::{
@@ -274,12 +271,8 @@ pub fn start_p2p_executor(
None => {}
Some(resp_msg) => {
println!("msg_sent:{:?}", resp_msg);
sd.senders_ref().send_dispatch(
resp_msg,
addr.clone(),
false,
sd.messages_list(),
);
sd.senders_ref()
.send_dispatch(resp_msg, addr.clone(), false);
}
}
}
@@ -296,12 +289,8 @@ pub fn start_p2p_executor(
None => {}
Some(resp_msg) => {
println!("msg_sent:{:?}", resp_msg);
sd.senders_ref().send_dispatch(
resp_msg,
addr.clone(),
false,
sd.messages_list(),
);
sd.senders_ref()
.send_dispatch(resp_msg, addr.clone(), false);
}
}
}
@@ -319,12 +308,8 @@ pub fn start_p2p_executor(
None => {}
Some(resp_msg) => {
println!("msg_sent:{:?}", resp_msg);
sd.senders_ref().send_dispatch(
resp_msg,
addr.clone(),
false,
sd.messages_list(),
);
sd.senders_ref()
.send_dispatch(resp_msg, addr.clone(), false);
}
}
}
@@ -396,7 +381,7 @@ pub fn start_p2p_executor(
println!("no shared data");
}
}
NetworkCommand::ConnectPeer((username, connected)) => {
NetworkCommand::ConnectPeer((username, _)) => {
println!("[Network] ConnectPeer() called");
println!("[Network] Attempting to connect to: {}", username);
// Network logic to connect...
@@ -406,7 +391,7 @@ pub fn start_p2p_executor(
NetworkCommand::RequestFileTree(_) => {
println!("[Network] RequestFileTree() called");
}
NetworkCommand::Discover(username, hash, ip) => {
NetworkCommand::Discover(username, _, ip) => {
// envoie un handshake au peer, puis un root request
if let Some(sd) = shared_data.as_ref() {
let res = sd
@@ -439,7 +424,6 @@ pub fn start_p2p_executor(
resp_msg,
peerinfo.ip.to_string(),
false,
sd.messages_list(),
);
}
}
@@ -503,12 +487,7 @@ pub fn start_p2p_executor(
false,
);
sd.senders_ref().send_dispatch(
resp_msg,
ip.clone(),
false,
sd.messages_list(),
);
sd.senders_ref().send_dispatch(resp_msg, ip.clone(), false);
}
}
}
@@ -529,9 +508,18 @@ pub fn start_p2p_executor(
Err(e) => {
let mut err_msg = String::from("failed to initialize socket: ");
err_msg += &e.to_string();
let res =
event_tx.send(NetworkEvent::Error(err_msg, name.to_owned()));
let res = event_tx.send(NetworkEvent::Disconnected());
match event_tx.send(NetworkEvent::Error(err_msg, name.to_owned())) {
Ok(_) => {}
Err(err) => {
println!("Network Event Error : {}", err.to_string());
}
};
match event_tx.send(NetworkEvent::Disconnected()) {
Ok(_) => {}
Err(err) => {
println!("Network Event Error : {}", err.to_string());
}
};
None
}
};
@@ -540,11 +528,25 @@ pub fn start_p2p_executor(
if let Err(e) = register_with_the_server(&sd.cryptopair(), &ip).await {
let mut err_msg = String::from("request failed: ");
err_msg += &e.to_string();
let res =
event_tx.send(NetworkEvent::Error(err_msg, name.to_owned()));
let res = event_tx.send(NetworkEvent::Disconnected());
match event_tx.send(NetworkEvent::Error(err_msg, name.to_owned())) {
Ok(_) => {}
Err(err) => {
println!("Network Event Error : {}", err.to_string());
}
};
match event_tx.send(NetworkEvent::Disconnected()) {
Ok(_) => {}
Err(err) => {
println!("Network Event Error : {}", err.to_string());
}
};
} else {
let res = event_tx.send(NetworkEvent::Connected(ip));
match event_tx.send(NetworkEvent::Connected(ip)) {
Ok(_) => {}
Err(err) => {
println!("Network Event Error : {}", err.to_string());
}
};
println!("username created: {}", sd.cryptopair().username);
}
//println!("ip: {}", ip);
@@ -563,10 +565,15 @@ pub fn start_p2p_executor(
NetworkCommand::FetchPeerList(ip) => {
println!("[Network] FetchPeerList() called");
if ip == "" {
let res = event_tx.send(NetworkEvent::Error(
match event_tx.send(NetworkEvent::Error(
"Not registered to any server".to_string(),
"".to_owned(),
));
)) {
Ok(_) => {}
Err(err) => {
println!("Network Event Error : {}", err.to_string());
}
};
} else {
println!("cc");
match get_peer_list(ip).await {
@@ -691,7 +698,6 @@ pub fn start_p2p_executor(
),
server_addr.to_string(),
false,
sd.messages_list(),
);
}
Err(err_msg) => {
@@ -730,22 +736,6 @@ fn socket_addr_to_vec(addr: SocketAddr) -> Vec<u8> {
v
}
fn parse_pack(s: &str) -> Option<[u8; 6]> {
// split into "ip" and "port"
let mut parts = s.rsplitn(2, ':');
let port_str = parts.next()?;
let ip_str = parts.next()?; // if missing, invalid
let ip: Ipv4Addr = ip_str.parse().ok()?;
let port: u16 = port_str.parse().ok()?;
let octets = ip.octets();
let port_be = port.to_be_bytes();
Some([
octets[0], octets[1], octets[2], octets[3], port_be[0], port_be[1],
])
}
async fn quick_ping(addr: &SocketAddr, timeout_ms: u64, sd: &P2PSharedData) -> bool {
let id = generate_id();
let pingreq = construct_message(PING, Vec::new(), id, &sd.shared_cryptopair);
@@ -753,7 +743,7 @@ async fn quick_ping(addr: &SocketAddr, timeout_ms: u64, sd: &P2PSharedData) -> b
if let Some(ping) = pingreq {
sd.add_message(id, EventType::Ping);
sd.senders_ref()
.send_dispatch(ping, addr.to_string(), false, sd.messages_list());
.send_dispatch(ping, addr.to_string(), false);
}
sleep(Duration::from_millis(timeout_ms)).await;
@@ -848,7 +838,6 @@ pub async fn get_socket_address(
natreq.expect("couldnt construct message nattraversalrequest2"),
sd.serveraddress().to_string(),
false,
sd.messages_list(),
);
sleep(Duration::from_millis(5000)).await;