fix formatting
This commit is contained in:
parent
c55182d6cc
commit
3c2984a404
@ -37,7 +37,7 @@ fn main() -> std::io::Result<()> {
|
|||||||
|
|
||||||
match self::protocol::start_autoconnect_server_async(&network_conf) {
|
match self::protocol::start_autoconnect_server_async(&network_conf) {
|
||||||
Ok(_) => println!("Started Autoconnect Server"),
|
Ok(_) => println!("Started Autoconnect Server"),
|
||||||
Err(e) => println!("Starting Autoconnect Server failed: {:?}", e)
|
Err(e) => println!("Starting Autoconnect Server failed: {:?}", e),
|
||||||
}
|
}
|
||||||
self::protocol::listen_forever(server_state, &network_conf)?;
|
self::protocol::listen_forever(server_state, &network_conf)?;
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
use super::ProtocolConfig;
|
use super::ProtocolConfig;
|
||||||
|
|
||||||
use std::thread;
|
|
||||||
use std::net::UdpSocket;
|
|
||||||
use std::io;
|
use std::io;
|
||||||
use std::net::SocketAddr;
|
|
||||||
use std::net::Ipv6Addr;
|
use std::net::Ipv6Addr;
|
||||||
|
use std::net::SocketAddr;
|
||||||
|
use std::net::UdpSocket;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
use std::thread;
|
||||||
|
|
||||||
pub fn start_autoconnect_server_async(cfg: &ProtocolConfig) -> io::Result<()> {
|
pub fn start_autoconnect_server_async(cfg: &ProtocolConfig) -> io::Result<()> {
|
||||||
let cfg = cfg.clone();
|
let cfg = cfg.clone();
|
||||||
@ -13,8 +13,14 @@ pub fn start_autoconnect_server_async(cfg : &ProtocolConfig) -> io::Result<()> {
|
|||||||
let multi_sock = UdpSocket::bind((cfg.listen_addr.as_str(), cfg.port))?;
|
let multi_sock = UdpSocket::bind((cfg.listen_addr.as_str(), cfg.port))?;
|
||||||
|
|
||||||
multi_sock.join_multicast_v6(
|
multi_sock.join_multicast_v6(
|
||||||
&Ipv6Addr::from_str(&cfg.autoconnect_multicastv6_addr).map_err(|_| io::Error::new(io::ErrorKind::InvalidInput, "Configured IPv6 addr. is invalid."))?,
|
&Ipv6Addr::from_str(&cfg.autoconnect_multicastv6_addr).map_err(|_| {
|
||||||
0)?;
|
io::Error::new(
|
||||||
|
io::ErrorKind::InvalidInput,
|
||||||
|
"Configured IPv6 addr. is invalid.",
|
||||||
|
)
|
||||||
|
})?,
|
||||||
|
0,
|
||||||
|
)?;
|
||||||
|
|
||||||
thread::spawn(move || {
|
thread::spawn(move || {
|
||||||
let mut buffer = vec![0u8; 8096];
|
let mut buffer = vec![0u8; 8096];
|
||||||
@ -22,19 +28,24 @@ pub fn start_autoconnect_server_async(cfg : &ProtocolConfig) -> io::Result<()> {
|
|||||||
match multi_sock.recv_from(&mut buffer) {
|
match multi_sock.recv_from(&mut buffer) {
|
||||||
Ok((pkg_size, sender)) => {
|
Ok((pkg_size, sender)) => {
|
||||||
let _ = respond(&multi_sock, &buffer[0..pkg_size], &sender, &cfg);
|
let _ = respond(&multi_sock, &buffer[0..pkg_size], &sender, &cfg);
|
||||||
},
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
println!("[Autoconnect] failed with : {:?}", e);
|
println!("[Autoconnect] failed with : {:?}", e);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn respond(sock : &UdpSocket, input : &[u8], sender : &SocketAddr, cfg : &ProtocolConfig) -> io::Result<()> {
|
fn respond(
|
||||||
|
sock: &UdpSocket,
|
||||||
|
input: &[u8],
|
||||||
|
sender: &SocketAddr,
|
||||||
|
cfg: &ProtocolConfig,
|
||||||
|
) -> io::Result<()> {
|
||||||
if input == b"TextureSync" {
|
if input == b"TextureSync" {
|
||||||
sock.send_to(&u16::to_be_bytes(cfg.port), sender)?;
|
sock.send_to(&u16::to_be_bytes(cfg.port), sender)?;
|
||||||
println!("[Autoconnect] Got request from : {}", sender);
|
println!("[Autoconnect] Got request from : {}", sender);
|
||||||
|
@ -56,7 +56,7 @@ pub struct ProtocolConfig {
|
|||||||
pub read_timeout_s: u64,
|
pub read_timeout_s: u64,
|
||||||
pub write_timeout_s: u64,
|
pub write_timeout_s: u64,
|
||||||
pub listen_addr: String,
|
pub listen_addr: String,
|
||||||
pub autoconnect_multicastv6_addr : String
|
pub autoconnect_multicastv6_addr: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ProtocolConfig {
|
impl ProtocolConfig {
|
||||||
|
Loading…
Reference in New Issue
Block a user