From 484aebdb16ec7096ee525e69f499d195ce2f9ddd Mon Sep 17 00:00:00 2001 From: link2xt Date: Tue, 21 Mar 2023 16:15:23 +0000 Subject: [PATCH] smtp: disable buffering while running STARTTLS Otherwise TLS setup fails on macOS and iOS with `errSSLClosedAbort`. () --- CHANGELOG.md | 1 + src/smtp.rs | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8c997da0..9f0284db4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ - Delete expired messages using multiple SQL requests. #4158 - Do not emit "Failed to run incremental vacuum" warnings on success. #4160 - Ability to send backup over network and QR code to setup second device #4007 +- Disable buffering during STARTTLS setup. #4190 ## [1.111.0] - 2023-03-05 diff --git a/src/smtp.rs b/src/smtp.rs index b8590dbb0..26402b325 100644 --- a/src/smtp.rs +++ b/src/smtp.rs @@ -143,7 +143,7 @@ impl Smtp { // Run STARTTLS command and convert the client back into a stream. let client = smtp::SmtpClient::new().smtp_utf8(true); let transport = SmtpTransport::new(client, BufStream::new(socks5_stream)).await?; - let tcp_stream = transport.starttls().await?; + let tcp_stream = transport.starttls().await?.into_inner(); let tls_stream = wrap_tls(strict_tls, hostname, tcp_stream) .await .context("STARTTLS upgrade failed")?; @@ -199,7 +199,7 @@ impl Smtp { // Run STARTTLS command and convert the client back into a stream. let client = smtp::SmtpClient::new().smtp_utf8(true); let transport = SmtpTransport::new(client, BufStream::new(tcp_stream)).await?; - let tcp_stream = transport.starttls().await?; + let tcp_stream = transport.starttls().await?.into_inner(); let tls_stream = wrap_tls(strict_tls, hostname, tcp_stream) .await .context("STARTTLS upgrade failed")?;