@@ -105,7 +105,11 @@ pub fn proxy() -> (String, Bomb) {
105
105
let handle = core. handle ( ) ;
106
106
let addr = t ! ( a. local_addr( ) ) ;
107
107
let listener = t ! ( TcpListener :: from_listener( a, & addr, & handle) ) ;
108
- let client = hyper:: Client :: builder ( ) . build ( hyper_tls:: HttpsConnector :: new ( 4 ) . unwrap ( ) ) ;
108
+ let client = if let Record :: Capture ( _, _) = record {
109
+ Some ( hyper:: Client :: builder ( ) . build ( hyper_tls:: HttpsConnector :: new ( 4 ) . unwrap ( ) ) )
110
+ } else {
111
+ None
112
+ } ;
109
113
110
114
let record = Arc :: new ( Mutex :: new ( record) ) ;
111
115
let srv = hyper:: Server :: builder ( listener. incoming ( ) . map ( |( l, _) | l) )
@@ -142,7 +146,7 @@ pub fn proxy() -> (String, Bomb) {
142
146
struct Proxy {
143
147
sink : Sink ,
144
148
record : Arc < Mutex < Record > > ,
145
- client : Client ,
149
+ client : Option < Client > ,
146
150
}
147
151
148
152
impl hyper:: service:: Service for Proxy {
@@ -155,7 +159,7 @@ impl hyper::service::Service for Proxy {
155
159
fn call ( & mut self , req : hyper:: Request < Self :: ReqBody > ) -> Self :: Future {
156
160
let record2 = self . record . clone ( ) ;
157
161
match * self . record . lock ( ) . unwrap ( ) {
158
- Record :: Capture ( _, _) => Box :: new ( record_http ( req, & self . client ) . map (
162
+ Record :: Capture ( _, _) => Box :: new ( record_http ( req, self . client . as_ref ( ) . unwrap ( ) ) . map (
159
163
move |( response, exchange) | {
160
164
if let Record :: Capture ( ref mut d, _) = * record2. lock ( ) . unwrap ( ) {
161
165
d. push ( exchange) ;
0 commit comments