Skip to content

Commit 051773c

Browse files
committed
setup logging stream on TCP level
1 parent 31a83e3 commit 051773c

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
@@ -255,6 +256,15 @@ impl Client {
255256
) -> Result<Self> {
256257
let tcp_stream = connect_tcp_inner(addr).await?;
257258

259+
let account_id = context.get_id();
260+
let events = context.events.clone();
261+
let tcp_stream = LoggingStream::new(
262+
tcp_stream,
263+
format!("STARTTLS IMAP stream {host} ({addr})"),
264+
account_id,
265+
events,
266+
);
267+
258268
// Run STARTTLS command and convert the client back into a stream.
259269
let buffered_tcp_stream = BufWriter::new(tcp_stream);
260270
let mut client = async_imap::Client::new(buffered_tcp_stream);
@@ -272,16 +282,7 @@ impl Client {
272282
let tls_stream = wrap_tls(strict_tls, host, &[], tcp_stream)
273283
.await
274284
.context("STARTTLS upgrade failed")?;
275-
276-
let account_id = context.get_id();
277-
let events = context.events.clone();
278-
let logging_stream = LoggingStream::new(
279-
tls_stream,
280-
format!("STARTTLS IMAP stream {host} ({addr})"),
281-
account_id,
282-
events,
283-
);
284-
let buffered_stream = BufWriter::new(logging_stream);
285+
let buffered_stream = BufWriter::new(tls_stream);
285286
let session_stream: Box<dyn SessionStream> = Box::new(buffered_stream);
286287
let client = Client::new(session_stream);
287288
Ok(client)

0 commit comments

Comments
 (0)