mirror of
https://github.com/rustdesk/rustdesk-server.git
synced 2025-07-03 08:15:25 +00:00
refactored
This commit is contained in:
parent
db89aaa5c6
commit
e1e4c9a965
@ -1,6 +1,6 @@
|
|||||||
use hbb_common::{
|
use hbb_common::{
|
||||||
bytes::BytesMut, log, protobuf::parse_from_bytes, rendezvous_proto::*, udp::FramedSocket, tcp::new_listener,
|
allow_err, bytes::BytesMut, log, protobuf::parse_from_bytes, rendezvous_proto::*,
|
||||||
AddrMangle, ResultType,
|
tcp::new_listener, tokio, udp::FramedSocket, AddrMangle, ResultType,
|
||||||
};
|
};
|
||||||
use std::{collections::HashMap, net::SocketAddr};
|
use std::{collections::HashMap, net::SocketAddr};
|
||||||
|
|
||||||
@ -20,19 +20,19 @@ impl RendezvousServer {
|
|||||||
let mut rs = Self {
|
let mut rs = Self {
|
||||||
peer_map: PeerMap::new(),
|
peer_map: PeerMap::new(),
|
||||||
};
|
};
|
||||||
// used to test if udp/tcp share the same NAT port, yes in my test.
|
// tcp listener used to test if udp/tcp share the same NAT port, yes in my test.
|
||||||
// also be used to help client to get local ip.
|
// also be used to help client to get local ip.
|
||||||
let addr = addr.to_string();
|
let mut listener = new_listener(addr, true).await.unwrap();
|
||||||
hbb_common::tokio::spawn(async {
|
loop {
|
||||||
let mut l = new_listener(addr, true).await.unwrap();
|
tokio::select! {
|
||||||
while let Ok((_, addr)) = l.accept().await {
|
Some(Ok((bytes, addr))) = socket.next() => {
|
||||||
|
allow_err!(rs.handle_msg(&bytes, addr, &mut socket).await);
|
||||||
|
}
|
||||||
|
Ok((_, addr)) = listener.accept() => {
|
||||||
log::debug!("Tcp connection from {:?}", addr);
|
log::debug!("Tcp connection from {:?}", addr);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
while let Some(Ok((bytes, addr))) = socket.next().await {
|
|
||||||
rs.handle_msg(&bytes, addr, &mut socket).await?;
|
|
||||||
}
|
}
|
||||||
Ok(())
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn handle_msg(
|
pub async fn handle_msg(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user