fix formatting

This commit is contained in:
CodeSteak 2019-06-05 19:35:10 +02:00
parent c55182d6cc
commit 3c2984a404
3 changed files with 27 additions and 16 deletions

View File

@ -37,7 +37,7 @@ fn main() -> std::io::Result<()> {
match self::protocol::start_autoconnect_server_async(&network_conf) {
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)?;

View File

@ -1,44 +1,55 @@
use super::ProtocolConfig;
use std::thread;
use std::net::UdpSocket;
use std::io;
use std::net::SocketAddr;
use std::net::Ipv6Addr;
use std::net::SocketAddr;
use std::net::UdpSocket;
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 multi_sock = UdpSocket::bind((cfg.listen_addr.as_str(), cfg.port))?;
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."))?,
0)?;
&Ipv6Addr::from_str(&cfg.autoconnect_multicastv6_addr).map_err(|_| {
io::Error::new(
io::ErrorKind::InvalidInput,
"Configured IPv6 addr. is invalid.",
)
})?,
0,
)?;
thread::spawn(move || {
let mut buffer = vec![0u8; 8096];
loop {
match multi_sock.recv_from(&mut buffer) {
Ok( (pkg_size, sender)) => {
let _ = respond(&multi_sock, &buffer[0..pkg_size], &sender, &cfg);
},
Err( e ) => {
match multi_sock.recv_from(&mut buffer) {
Ok((pkg_size, sender)) => {
let _ = respond(&multi_sock, &buffer[0..pkg_size], &sender, &cfg);
}
Err(e) => {
println!("[Autoconnect] failed with : {:?}", e);
break;
}
}
};
}
});
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" {
sock.send_to(&u16::to_be_bytes(cfg.port), sender)?;
println!("[Autoconnect] Got request from : {}", sender);
}
Ok(())
}
}

View File

@ -56,7 +56,7 @@ pub struct ProtocolConfig {
pub read_timeout_s: u64,
pub write_timeout_s: u64,
pub listen_addr: String,
pub autoconnect_multicastv6_addr : String
pub autoconnect_multicastv6_addr: String,
}
impl ProtocolConfig {