Compare commits
No commits in common. "4ca652cea5cdca0582bae27b92f3b1d40551e077" and "6aa9fb27e63d00cdee511b592f38189141e0b774" have entirely different histories.
4ca652cea5
...
6aa9fb27e6
@ -37,7 +37,7 @@ pub fn read_tun_iface(
|
||||
loop {
|
||||
let data_lenght = tun_iface.recv(&mut buf).unwrap(); // build in auto termination, isn't it great
|
||||
smol::spawn(handle_ip_packet(
|
||||
buf[..data_lenght].to_vec().into(),
|
||||
buf[..data_lenght - 1].to_vec().into(),
|
||||
network.clone(),
|
||||
socket.clone(),
|
||||
))
|
||||
@ -84,25 +84,22 @@ pub async fn handle_ip_packet(
|
||||
let mut iv: [u8; BLOCK_SIZE] = [0u8; BLOCK_SIZE];
|
||||
rng.fill_bytes(&mut iv);
|
||||
|
||||
let mut procesed_data: Vec<u8> = if network.read().unwrap().encrypted {
|
||||
let mut encrypted_data =
|
||||
match shared::crypto::encrypt(&network.read().unwrap().key, &iv, &packet_data) {
|
||||
Ok(cr) => cr,
|
||||
Err(e) => {
|
||||
eprintln!("Failed to encrypt packet droping it: {}", e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
packet_data.to_vec()
|
||||
};
|
||||
};
|
||||
|
||||
procesed_data.insert(0, P2PMethods::PACKET as u8);
|
||||
procesed_data.splice(1..1, iv);
|
||||
encrypted_data.insert(0, P2PMethods::PACKET as u8);
|
||||
encrypted_data.splice(1..1, iv);
|
||||
|
||||
if dst_ip.octets()[3] == 255 {
|
||||
network.read().unwrap().peers.par_iter().for_each(|peer| {
|
||||
// broadcast
|
||||
match socket.send_to(&procesed_data, peer.sock_addr) {
|
||||
match socket.send_to(&encrypted_data, peer.sock_addr) {
|
||||
Ok(_) => {}
|
||||
Err(e) => eprintln!("failed to send packet: {}", e),
|
||||
};
|
||||
@ -120,7 +117,7 @@ pub async fn handle_ip_packet(
|
||||
None => return,
|
||||
};
|
||||
|
||||
match socket.send_to(&procesed_data, dst) {
|
||||
match socket.send_to(&encrypted_data, dst) {
|
||||
Ok(_) => {}
|
||||
Err(e) => eprintln!("failed to send packet: {}", e),
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user