// #![deny(warnings)] mod cli; mod error; mod ldap; mod listener; mod stream; use cli::CliArgs; use error::GlobalError; use ldap::ldap_handler; use listener::ListenerPath; #[tokio::main(flavor = "current_thread")] async fn main() -> Result<(), GlobalError> { let cli: CliArgs = argh::from_env(); tracing_subscriber::fmt::init(); // let subscriber = tracing_subscriber::FmtSubscriber::new(); // .with_file(true) // .with_line_number(true) // .finish() // .init(); // tracing::subscriber::set_global_default(subscriber)?; let listener = ListenerPath::new(&cli.listen)?.listener().await?; // If the connection is None, it's because the client aborted early // so there's nothing to do about it. while let Some(stream) = listener.accept_ldap().await? { tokio::spawn(ldap_handler(stream)); } Ok(()) }