- .map_err(|e| error(format!("Incoming failed: {:?}", e)))
- .and_then(move |s| {
- tls_acceptor.accept(s).map_err(|e| {
- println!("[!] Voluntary server halt due to client-connection error...");
- // Errors could be handled here, instead of server aborting.
- // println!("TLS Error: {:?}", e);
- error(format!("TLS Error: {:?}", e))
- })
+ .filter_map(move |s| async move {
+ let client = match s {
+ Ok(x) => x,
+ Err(e) => {
+ println!("Failed to accept a client, should probably back off");
+ return Some(Err(e));
+ }
+ };
+ match tls_acceptor.accept(client).await {
+ Ok(x) => Some(Ok(x)),
+ Err(e) => {
+ println!("[!] Client connection error: {}", e);
+ None
+ }
+ }