holepuching fixes
This commit is contained in:
parent
28dd37bdec
commit
3675650864
@ -676,22 +676,15 @@ pub async fn handle_incoming_connection(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
for _ in 0..MAPPING_SHOT_COUNT {
|
||||||
match P2P_query(
|
match socket.send_to(&[P2PMethods::PEER_QUERY as u8], peer_addr) {
|
||||||
// create NAT mapping
|
Ok(s) => {
|
||||||
&mut buf,
|
#[cfg(debug_assertions)]
|
||||||
&peer_addr,
|
eprintln!("send {} bytes", s);
|
||||||
&socket,
|
}
|
||||||
network.read().unwrap().encrypted,
|
Err(e) => eprintln!("{} failed to send puching packet: {}", "[ERROR]".red(), e),
|
||||||
network.read().unwrap().key,
|
}
|
||||||
) {
|
}
|
||||||
Ok(_) => {}
|
|
||||||
Err(e) => eprintln!(
|
|
||||||
"{} failed to create NAT mapping to peer connection may not work Error: {}",
|
|
||||||
"[ERROR]".red(),
|
|
||||||
e
|
|
||||||
),
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
eprintln!(
|
eprintln!(
|
||||||
|
@ -11,6 +11,8 @@ pub const STANDARD_RETRY_MAX: usize = 10;
|
|||||||
pub const DEST_IN_IPV4_OFFSET: usize = 16;
|
pub const DEST_IN_IPV4_OFFSET: usize = 16;
|
||||||
pub const IPV4_SIZE: usize = 4;
|
pub const IPV4_SIZE: usize = 4;
|
||||||
|
|
||||||
|
pub const MAPPING_SHOT_COUNT: u8 = 5;
|
||||||
|
|
||||||
pub const DEFAULT_NETWORK_PREFIX: [u8; 3] = [172, 22, 44];
|
pub const DEFAULT_NETWORK_PREFIX: [u8; 3] = [172, 22, 44];
|
||||||
|
|
||||||
#[repr(u8)]
|
#[repr(u8)]
|
||||||
|
@ -333,9 +333,8 @@ pub async fn handle_request(
|
|||||||
send_buf[0] = P2PMethods::NEW_CLIENT_NOTIFY as u8;
|
send_buf[0] = P2PMethods::NEW_CLIENT_NOTIFY as u8;
|
||||||
send_buf[P2PStandardDataPositions::IV as usize..P2PStandardDataPositions::IV as usize+ BLOCK_SIZE].copy_from_slice(&iv);
|
send_buf[P2PStandardDataPositions::IV as usize..P2PStandardDataPositions::IV as usize+ BLOCK_SIZE].copy_from_slice(&iv);
|
||||||
send_buf[P2PStandardDataPositions::DATA as usize..P2PStandardDataPositions::DATA as usize + sock_addr_len as usize].copy_from_slice(&sock_addr);
|
send_buf[P2PStandardDataPositions::DATA as usize..P2PStandardDataPositions::DATA as usize + sock_addr_len as usize].copy_from_slice(&sock_addr);
|
||||||
let mut resp_buf: [u8; UDP_BUFFER_SIZE] = [0u8; UDP_BUFFER_SIZE];
|
match socket.send_to(&send_buf, src) {
|
||||||
match shared::net::send_and_recv_with_retry(&mut resp_buf, &send_buf, &c.src, &socket, STANDARD_RETRY_MAX) {
|
Ok(data_lenght) => {
|
||||||
Ok((data_lenght, _)) => {
|
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
eprintln!("send {} bytes", data_lenght);
|
eprintln!("send {} bytes", data_lenght);
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user