This commit is contained in:
Tiago Batista Cardoso
2026-01-21 23:58:15 +01:00
parent 424c11c5aa
commit 0799841cf2
3 changed files with 99 additions and 52 deletions

View File

@@ -1,5 +1,7 @@
use tokio::sync::oneshot;
use crate::{
NetworkEvent, NodeHash,
NetworkEvent, NodeHash, P2PSharedData,
cryptographic_signature::{
CryptographicSignature, get_peer_key, sign_message, verify_signature,
},
@@ -49,6 +51,8 @@ const DATUM: u8 = 132;
const NATTRAVERSALREQUEST: u8 = 4;
const NATTRAVERSALREQUEST2: u8 = 5;
type PendingMap = Arc<Mutex<HashMap<i32, oneshot::Sender<Vec<u8>>>>>;
pub fn handle_recevied_message(
messages_list: &Arc<Mutex<HashMap<i32, EventType>>>,
recevied_message: &Vec<u8>,
@@ -59,6 +63,7 @@ pub fn handle_recevied_message(
cmd_tx: crossbeam_channel::Sender<NetworkEvent>,
ip: SocketAddr,
handhsake_history: Arc<HandshakeHistory>,
pending: PendingMap,
) {
if recevied_message.len() < 4 {
return;
@@ -67,6 +72,16 @@ pub fn handle_recevied_message(
let message_id: [u8; 4] = recevied_message[0..4].try_into().expect("size error");
let id = i32::from_be_bytes(message_id);
let maybe_tx = {
let mut map = pending.lock().expect("couldnt lock pending map");
map.remove(&id)
};
if let Some(tx) = maybe_tx {
let _ = tx.send(Vec::new()); // ignore send error if receiver dropped
return;
}
let mut is_resp_to_server_handshake = false;
if recevied_message[4] == HELLO {