]> OzVa Git service - ozva-cloud/commitdiff
fix: panic when bind already used port
authorsigoden <sigoden@gmail.com>
Thu, 2 Jun 2022 23:15:41 +0000 (07:15 +0800)
committersigoden <sigoden@gmail.com>
Thu, 2 Jun 2022 23:15:41 +0000 (07:15 +0800)
src/server.rs

index 3c7bdcc13e68057ff59f4898143ca5b686929557..de53d375eb6d371cf7ec618d6ef335f21b5a8f85 100644 (file)
@@ -63,7 +63,7 @@ pub async fn serve(args: Args) -> BoxResult<()> {
             .with_single_cert(certs.clone(), key.clone())?;
         let tls_acceptor = TlsAcceptor::from(Arc::new(config));
         let arc_acceptor = Arc::new(tls_acceptor);
-        let listener = TcpListener::bind(&socket_addr).await.unwrap();
+        let listener = TcpListener::bind(&socket_addr).await?;
         let incoming = tokio_stream::wrappers::TcpListenerStream::new(listener);
         let incoming = hyper::server::accept::from_stream(incoming.filter_map(|socket| async {
             match socket {
@@ -86,7 +86,7 @@ pub async fn serve(args: Args) -> BoxResult<()> {
         print_listening(args.address.as_str(), args.port, true);
         server.await?;
     } else {
-        let server = hyper::Server::bind(&socket_addr).serve(make_service_fn(move |_| {
+        let server = hyper::Server::try_bind(&socket_addr)?.serve(make_service_fn(move |_| {
             let inner = inner.clone();
             async move {
                 Ok::<_, Infallible>(service_fn(move |req| {