Skip to content

Commit 8efff30

Browse files
committed
setup logging stream on TCP level
1 parent 0d5ca43 commit 8efff30

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

src/imap/client.rs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use crate::net::proxy::ProxyConfig;
1515
use crate::net::session::SessionStream;
1616
use crate::net::tls::wrap_tls;
1717
use crate::net::{
18-
connect_tcp_inner, connect_tls_inner, run_connection_attempts, update_connection_history,
18+
connect_tcp_inner, run_connection_attempts, update_connection_history,
1919
};
2020
use crate::tools::time;
2121

@@ -208,16 +208,17 @@ impl Client {
208208
hostname: &str,
209209
strict_tls: bool,
210210
) -> Result<Self> {
211-
let tls_stream = connect_tls_inner(addr, hostname, strict_tls, alpn(addr.port())).await?;
211+
let tcp_stream = connect_tcp_inner(addr).await?;
212212
let account_id = context.get_id();
213213
let events = context.events.clone();
214214
let logging_stream = LoggingStream::new(
215-
tls_stream,
215+
tcp_stream,
216216
format!("TLS IMAP stream {hostname} ({addr})"),
217217
account_id,
218218
events,
219219
);
220-
let buffered_stream = BufWriter::new(logging_stream);
220+
let tls_stream = wrap_tls(strict_tls, hostname, alpn(addr.port()), logging_stream).await?;
221+
let buffered_stream = BufWriter::new(tls_stream);
221222
let session_stream: Box<dyn SessionStream> = Box::new(buffered_stream);
222223
let mut client = Client::new(session_stream);
223224
let _greeting = client
@@ -250,6 +251,15 @@ impl Client {
250251
async fn connect_starttls(context: &Context, addr: SocketAddr, host: &str, strict_tls: bool) -> Result<Self> {
251252
let tcp_stream = connect_tcp_inner(addr).await?;
252253

254+
let account_id = context.get_id();
255+
let events = context.events.clone();
256+
let tcp_stream = LoggingStream::new(
257+
tcp_stream,
258+
format!("STARTTLS IMAP stream {host} ({addr})"),
259+
account_id,
260+
events,
261+
);
262+
253263
// Run STARTTLS command and convert the client back into a stream.
254264
let buffered_tcp_stream = BufWriter::new(tcp_stream);
255265
let mut client = async_imap::Client::new(buffered_tcp_stream);
@@ -267,16 +277,7 @@ impl Client {
267277
let tls_stream = wrap_tls(strict_tls, host, &[], tcp_stream)
268278
.await
269279
.context("STARTTLS upgrade failed")?;
270-
271-
let account_id = context.get_id();
272-
let events = context.events.clone();
273-
let logging_stream = LoggingStream::new(
274-
tls_stream,
275-
format!("STARTTLS IMAP stream {host} ({addr})"),
276-
account_id,
277-
events,
278-
);
279-
let buffered_stream = BufWriter::new(logging_stream);
280+
let buffered_stream = BufWriter::new(tls_stream);
280281
let session_stream: Box<dyn SessionStream> = Box::new(buffered_stream);
281282
let client = Client::new(session_stream);
282283
Ok(client)

0 commit comments

Comments
 (0)