@@ -5,6 +5,7 @@ use std::{
5
5
time:: Duration ,
6
6
} ;
7
7
8
+ use bufstream:: BufStream ;
8
9
use derivative:: Derivative ;
9
10
use webpki:: DNSNameRef ;
10
11
@@ -28,10 +29,13 @@ pub(super) enum Stream {
28
29
Null ,
29
30
30
31
/// A basic TCP connection to the server.
31
- Tcp ( TcpStream ) ,
32
+ Tcp ( BufStream < TcpStream > ) ,
32
33
33
34
/// A TLS connection over TCP.
34
- Tls ( #[ derivative( Debug = "ignore" ) ] rustls:: StreamOwned < rustls:: ClientSession , TcpStream > ) ,
35
+ Tls (
36
+ #[ derivative( Debug = "ignore" ) ]
37
+ BufStream < rustls:: StreamOwned < rustls:: ClientSession , TcpStream > > ,
38
+ ) ,
35
39
}
36
40
37
41
impl Stream {
@@ -54,6 +58,7 @@ impl Stream {
54
58
TcpStream :: connect_timeout ( & socket_addrs[ 0 ] , timeout) ?
55
59
} ;
56
60
inner. set_nodelay ( true ) ?;
61
+ let inner = inner;
57
62
58
63
match tls_options {
59
64
Some ( cfg) => {
@@ -63,9 +68,11 @@ impl Stream {
63
68
64
69
let session = rustls:: ClientSession :: new ( & Arc :: new ( tls_config) , name) ;
65
70
66
- Ok ( Stream :: Tls ( rustls:: StreamOwned :: new ( session, inner) ) )
71
+ Ok ( Stream :: Tls ( BufStream :: new ( rustls:: StreamOwned :: new (
72
+ session, inner,
73
+ ) ) ) )
67
74
}
68
- None => Ok ( Self :: Tcp ( inner) ) ,
75
+ None => Ok ( Self :: Tcp ( BufStream :: new ( inner) ) ) ,
69
76
}
70
77
}
71
78
}
0 commit comments