Handle restricted ports
This commit is contained in:
17
src/main.rs
17
src/main.rs
@ -1,6 +1,7 @@
|
||||
use actix_web::middleware::Logger;
|
||||
use actix_web::{web, App, HttpResponse, HttpServer};
|
||||
use clap::Parser;
|
||||
use hidden_server::restricted_port::is_restricted_port;
|
||||
use log::LevelFilter;
|
||||
use rand::Rng;
|
||||
|
||||
@ -22,7 +23,7 @@ struct Args {
|
||||
#[arg(short('M'), long, default_value_t = 1000)]
|
||||
max_port: u16,
|
||||
/// Host this server will listen to
|
||||
#[arg(short, long, default_value="0.0.0.0")]
|
||||
#[arg(short, long, default_value = "0.0.0.0")]
|
||||
listen_host: String,
|
||||
}
|
||||
|
||||
@ -43,7 +44,19 @@ async fn main() -> std::io::Result<()> {
|
||||
log::info!("Choosing a random port to start...");
|
||||
|
||||
let mut rng = rand::thread_rng();
|
||||
let port: u16 = args.min_port + rng.random::<u16>() % (args.max_port - args.min_port);
|
||||
let mut port: u16;
|
||||
|
||||
loop {
|
||||
port = args.min_port + rng.random::<u16>() % (args.max_port - args.min_port);
|
||||
|
||||
if !is_restricted_port(port) {
|
||||
break;
|
||||
}
|
||||
|
||||
log::info!("I chose a restricted port, I have to choose another one...");
|
||||
}
|
||||
|
||||
log::info!("Can now start server...");
|
||||
|
||||
HttpServer::new(|| {
|
||||
App::new()
|
||||
|
Reference in New Issue
Block a user