rust-nex/src/main.rs

62 lines
1.8 KiB
Rust
Raw Normal View History

2025-01-19 14:14:48 +01:00
use std::env::current_dir;
use std::{env, fs};
use std::fs::File;
use std::net::{Ipv4Addr, SocketAddrV4};
use chrono::Local;
use log::{info, trace};
2025-01-19 14:14:48 +01:00
use once_cell::sync::Lazy;
use simplelog::{ColorChoice, CombinedLogger, Config, LevelFilter, TerminalMode, TermLogger, WriteLogger};
use crate::prudp::endpoint::Endpoint;
use crate::prudp::packet::VirtualPort;
2025-01-19 14:14:48 +01:00
use crate::prudp::server::NexServer;
2025-01-19 13:02:15 +01:00
mod endianness;
mod prudp;
2025-01-19 14:14:48 +01:00
static AUTH_SERVER_PORT: Lazy<u16> = Lazy::new(||{
env::var("AUTH_SERVER_PORT")
.ok()
.and_then(|s| s.parse().ok())
.unwrap_or(10000)
});
static OWN_IP: Lazy<Ipv4Addr> = Lazy::new(||{
env::var("SERVER_IP")
.ok()
.and_then(|s| s.parse().ok())
.expect("no public ip specified")
});
2025-01-19 14:14:48 +01:00
2025-01-19 13:02:15 +01:00
fn main() {
2025-01-19 14:14:48 +01:00
CombinedLogger::init(
vec![
TermLogger::new(LevelFilter::Info, Config::default(), TerminalMode::Mixed, ColorChoice::Auto),
WriteLogger::new(LevelFilter::max(), Config::default(), {
2025-01-19 14:14:48 +01:00
fs::create_dir_all("log").unwrap();
File::create(format!("log/{}.log", Local::now().to_rfc2822())).unwrap()
})
]
).unwrap();
dotenv::dotenv().ok();
info!("starting auth server on {}:{}", *OWN_IP, *AUTH_SERVER_PORT);
2025-01-19 14:14:48 +01:00
let (auth_server, auth_server_join_handle) =
NexServer::new(SocketAddrV4::new(*OWN_IP, *AUTH_SERVER_PORT))
2025-01-19 14:14:48 +01:00
.expect("unable to startauth server");
info!("setting up endpoints");
let auth_endpoints = vec![
2025-01-20 18:01:54 +01:00
Endpoint::new(auth_server.socket.try_clone().unwrap(), VirtualPort::new(1,10))
];
auth_server.endpoints.set(auth_endpoints)
.expect("endpoints were somehow set by something else???");
trace!("joining auth server");
2025-01-19 14:14:48 +01:00
auth_server_join_handle.join().unwrap();
2025-01-19 13:02:15 +01:00
}