@@ -8,6 +8,7 @@ use tokio::io::BufWriter;
8
8
9
9
use super :: capabilities:: Capabilities ;
10
10
use crate :: context:: Context ;
11
+ use crate :: log:: LoggingStream ;
11
12
use crate :: login_param:: { ConnectionCandidate , ConnectionSecurity } ;
12
13
use crate :: net:: dns:: { lookup_host_with_cache, update_connect_timestamp} ;
13
14
use crate :: net:: proxy:: ProxyConfig ;
@@ -125,12 +126,12 @@ impl Client {
125
126
) ;
126
127
let res = match security {
127
128
ConnectionSecurity :: Tls => {
128
- Client :: connect_secure ( resolved_addr, host, strict_tls) . await
129
+ Client :: connect_secure ( & context , resolved_addr, host, strict_tls) . await
129
130
}
130
131
ConnectionSecurity :: Starttls => {
131
132
Client :: connect_starttls ( resolved_addr, host, strict_tls) . await
132
133
}
133
- ConnectionSecurity :: Plain => Client :: connect_insecure ( resolved_addr) . await ,
134
+ ConnectionSecurity :: Plain => Client :: connect_insecure ( & context , resolved_addr) . await ,
134
135
} ;
135
136
match res {
136
137
Ok ( client) => {
@@ -201,9 +202,22 @@ impl Client {
201
202
}
202
203
}
203
204
204
- 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 > {
205
211
let tls_stream = connect_tls_inner ( addr, hostname, strict_tls, alpn ( addr. port ( ) ) ) . await ?;
206
- 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) ;
207
221
let session_stream: Box < dyn SessionStream > = Box :: new ( buffered_stream) ;
208
222
let mut client = Client :: new ( session_stream) ;
209
223
let _greeting = client
@@ -213,9 +227,17 @@ impl Client {
213
227
Ok ( client)
214
228
}
215
229
216
- async fn connect_insecure ( addr : SocketAddr ) -> Result < Self > {
230
+ async fn connect_insecure ( context : & Context , addr : SocketAddr ) -> Result < Self > {
217
231
let tcp_stream = connect_tcp_inner ( addr) . await ?;
218
- 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) ;
219
241
let session_stream: Box < dyn SessionStream > = Box :: new ( buffered_stream) ;
220
242
let mut client = Client :: new ( session_stream) ;
221
243
let _greeting = client
0 commit comments