rust-nex/src/main.rs

66 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::socket::{Socket, SocketImpl};
use crate::prudp::packet::VirtualPort;
use crate::prudp::router::Router;
2025-01-19 14:14:48 +01:00
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
#[tokio::main]
async 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();
start_servers().await;
}
async fn start_servers(){
info!("starting auth server on {}:{}", *OWN_IP, *AUTH_SERVER_PORT);
2025-01-19 14:14:48 +01:00
let auth_server_router =
Router::new(SocketAddrV4::new(*OWN_IP, *AUTH_SERVER_PORT)).await
.expect("unable to startauth server");
2025-01-19 14:14:48 +01:00
info!("setting up endpoints");
let mut socket =
Socket::new(
auth_server_router.clone(),
VirtualPort::new(1,10),
"6f599f81"
).await.expect("unable to create socket");
2025-01-19 14:14:48 +01:00
let Some(connection) = socket.accept().await else {
return;
};
2025-01-19 13:02:15 +01:00
}