From 96eb483ebc6086e52925f2b3c1e7339f9b09624b Mon Sep 17 00:00:00 2001 From: Hyeon Kim Date: Wed, 8 Jan 2020 01:41:51 +0900 Subject: [PATCH] Update example: Restart server instead of abort You don't want to restart aborted sample server everytime it meets errors. :) --- examples/server.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/server.rs b/examples/server.rs index 71b1898..c28bf0c 100644 --- a/examples/server.rs +++ b/examples/server.rs @@ -6,7 +6,7 @@ //! otherwise HTTP/1.1 will be used. use core::task::{Context, Poll}; use futures_util::{ - future::TryFutureExt, + future::{ready, TryFutureExt}, stream::{Stream, StreamExt, TryStreamExt}, }; use hyper::service::{make_service_fn, service_fn}; @@ -65,12 +65,14 @@ async fn run_server() -> Result<(), Box> { .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. - // Ok(None) + eprintln!("TLS Error: {:?}", e); error(format!("TLS Error: {:?}", e)) }) }) + .filter(|res| { + // Ignore failed accepts + ready(res.is_ok()) + }) .boxed(); let service = make_service_fn(|_| async { Ok::<_, io::Error>(service_fn(echo)) });