@@ -8,7 +8,7 @@ use tokio::io::BufWriter;
8
8
9
9
use super :: capabilities:: Capabilities ;
10
10
use crate :: context:: Context ;
11
- use crate :: log:: { info, warn} ;
11
+ use crate :: log:: { LoggingStream , info, warn} ;
12
12
use crate :: login_param:: { ConnectionCandidate , ConnectionSecurity } ;
13
13
use crate :: net:: dns:: { lookup_host_with_cache, update_connect_timestamp} ;
14
14
use crate :: net:: proxy:: ProxyConfig ;
@@ -126,12 +126,12 @@ impl Client {
126
126
) ;
127
127
let res = match security {
128
128
ConnectionSecurity :: Tls => {
129
- Client :: connect_secure ( resolved_addr, host, strict_tls) . await
129
+ Client :: connect_secure ( & context , resolved_addr, host, strict_tls) . await
130
130
}
131
131
ConnectionSecurity :: Starttls => {
132
132
Client :: connect_starttls ( resolved_addr, host, strict_tls) . await
133
133
}
134
- ConnectionSecurity :: Plain => Client :: connect_insecure ( resolved_addr) . await ,
134
+ ConnectionSecurity :: Plain => Client :: connect_insecure ( & context , resolved_addr) . await ,
135
135
} ;
136
136
match res {
137
137
Ok ( client) => {
@@ -202,9 +202,22 @@ impl Client {
202
202
}
203
203
}
204
204
205
- async fn connect_secure ( addr : SocketAddr , hostname : & str , strict_tls : bool ) -> Result < Self > {
205
+ async fn connect_secure (
206
+ context : & Context ,
207
+ addr : SocketAddr ,
208
+ hostname : & str ,
209
+ strict_tls : bool ,
210
+ ) -> Result < Self > {
206
211
let tls_stream = connect_tls_inner ( addr, hostname, strict_tls, alpn ( addr. port ( ) ) ) . await ?;
207
- let buffered_stream = BufWriter :: new ( tls_stream) ;
212
+ let account_id = context. get_id ( ) ;
213
+ let events = context. events . clone ( ) ;
214
+ let logging_stream = LoggingStream :: new (
215
+ tls_stream,
216
+ "some IMAP TLS stream" . to_string ( ) ,
217
+ account_id,
218
+ events,
219
+ ) ;
220
+ let buffered_stream = BufWriter :: new ( logging_stream) ;
208
221
let session_stream: Box < dyn SessionStream > = Box :: new ( buffered_stream) ;
209
222
let mut client = Client :: new ( session_stream) ;
210
223
let _greeting = client
@@ -214,9 +227,17 @@ impl Client {
214
227
Ok ( client)
215
228
}
216
229
217
- async fn connect_insecure ( addr : SocketAddr ) -> Result < Self > {
230
+ async fn connect_insecure ( context : & Context , addr : SocketAddr ) -> Result < Self > {
218
231
let tcp_stream = connect_tcp_inner ( addr) . await ?;
219
- let buffered_stream = BufWriter :: new ( tcp_stream) ;
232
+ let account_id = context. get_id ( ) ;
233
+ let events = context. events . clone ( ) ;
234
+ let logging_stream = LoggingStream :: new (
235
+ tcp_stream,
236
+ "some IMAP insecure TLS stream" . to_string ( ) ,
237
+ account_id,
238
+ events,
239
+ ) ;
240
+ let buffered_stream = BufWriter :: new ( logging_stream) ;
220
241
let session_stream: Box < dyn SessionStream > = Box :: new ( buffered_stream) ;
221
242
let mut client = Client :: new ( session_stream) ;
222
243
let _greeting = client
0 commit comments