Skip to content

Instantly share code, notes, and snippets.

@rschulman
Created May 14, 2020 01:41
Show Gist options
  • Save rschulman/a05b0e3d1eb3afe0ec52cca6c86361f3 to your computer and use it in GitHub Desktop.
Save rschulman/a05b0e3d1eb3afe0ec52cca6c86361f3 to your computer and use it in GitHub Desktop.
fn main() {
let args: Vec<String> = env::args().collect();
let pkcs12 = make_pkcs12(&args[1], &args[2]);
let owned_root = args[3].to_string();
let acceptor = TlsAcceptor::new(pkcs12).unwrap();
let acceptor = Arc::new(acceptor);
let listener = TcpListener::bind("0.0.0.0:1965").unwrap();
println!("\n=> Started pollux on port 1965. Awaiting connections...\n");
for stream in listener.incoming() {
match stream {
Ok(stream) => {
println!("New connection: {}", stream.peer_addr().unwrap());
let acceptor = acceptor.clone();
let file_root = &owned_root;
thread::spawn(move || {
let stream = acceptor.accept(stream).unwrap();
handle_request(stream, &file_root);
});
}
Err(e) => {
println!("Error: {}", e);
}
}
}
drop(listener);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment