From addf8754ddd179749822b1bbe195fa66d3943797 Mon Sep 17 00:00:00 2001 From: Paolo Barbolini Date: Wed, 6 Oct 2021 19:25:50 +0200 Subject: [PATCH] smtp: don't send QUIT to connections that failed the STARTTLS handshake (#679) --- src/transport/smtp/client/async_connection.rs | 5 +---- src/transport/smtp/client/connection.rs | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/transport/smtp/client/async_connection.rs b/src/transport/smtp/client/async_connection.rs index e341726..88c7eb5 100644 --- a/src/transport/smtp/client/async_connection.rs +++ b/src/transport/smtp/client/async_connection.rs @@ -161,10 +161,7 @@ impl AsyncSmtpConnection { ) -> Result<(), Error> { if self.server_info.supports_feature(Extension::StartTls) { try_smtp!(self.command(Starttls).await, self); - try_smtp!( - self.stream.get_mut().upgrade_tls(tls_parameters).await, - self - ); + self.stream.get_mut().upgrade_tls(tls_parameters).await?; #[cfg(feature = "tracing")] tracing::debug!("connection encrypted"); // Send EHLO again diff --git a/src/transport/smtp/client/connection.rs b/src/transport/smtp/client/connection.rs index e73b50c..4de1339 100644 --- a/src/transport/smtp/client/connection.rs +++ b/src/transport/smtp/client/connection.rs @@ -145,7 +145,7 @@ impl SmtpConnection { #[cfg(any(feature = "native-tls", feature = "rustls-tls"))] { try_smtp!(self.command(Starttls), self); - try_smtp!(self.stream.get_mut().upgrade_tls(tls_parameters), self); + self.stream.get_mut().upgrade_tls(tls_parameters)?; #[cfg(feature = "tracing")] tracing::debug!("connection encrypted"); // Send EHLO again