wip nattraversal
This commit is contained in:
@@ -21,7 +21,7 @@ use crate::{
|
||||
};
|
||||
use std::{
|
||||
io::Error,
|
||||
net::{Ipv4Addr, UdpSocket},
|
||||
net::{IpAddr, Ipv4Addr, UdpSocket},
|
||||
};
|
||||
use std::{
|
||||
net::SocketAddr,
|
||||
@@ -366,15 +366,13 @@ pub fn start_p2p_executor(
|
||||
match server_addr_query.await {
|
||||
Some(server_addr) => match peer_addr_query.await {
|
||||
Some(peer_addr) => {
|
||||
let payload =
|
||||
parse_pack(peer_addr.clone().to_string().as_str())
|
||||
.expect("couldnt create payload");
|
||||
let payload = socket_addr_to_vec(server_addr);
|
||||
|
||||
print!("{:?}", payload.clone());
|
||||
|
||||
let natreq = construct_message(
|
||||
NATTRAVERSALREQUEST,
|
||||
payload.clone().to_vec(),
|
||||
server_addr.to_string().into_bytes(),
|
||||
generate_id(),
|
||||
&sd.cryptopair(),
|
||||
);
|
||||
@@ -417,6 +415,15 @@ pub fn start_p2p_executor(
|
||||
})
|
||||
}
|
||||
|
||||
fn socket_addr_to_vec(addr: SocketAddr) -> Vec<u8> {
|
||||
let mut v = match addr.ip() {
|
||||
IpAddr::V4(v4) => v4.octets().to_vec(),
|
||||
IpAddr::V6(v6) => v6.octets().to_vec(),
|
||||
};
|
||||
v.extend(&addr.port().to_be_bytes());
|
||||
v
|
||||
}
|
||||
|
||||
fn parse_pack(s: &str) -> Option<[u8; 6]> {
|
||||
// split into "ip" and "port"
|
||||
let mut parts = s.rsplitn(2, ':');
|
||||
|
||||
Reference in New Issue
Block a user