@@ -234,17 +234,30 @@ implement_http_transport! {
234
234
signal: Arc <Condvar >,
235
235
shutdown_immediately: Arc <AtomicBool >,
236
236
queue_size: Arc <Mutex <usize >>,
237
- http_client: Client ,
237
+ http_client: Option < Client > ,
238
238
) {
239
239
let dsn = options. dsn. clone( ) . unwrap( ) ;
240
240
let user_agent = options. user_agent. to_string( ) ;
241
241
242
242
let mut disabled = None :: <SystemTime >;
243
+ let http_proxy = options. http_proxy. as_ref( ) . map( ToString :: to_string) ;
244
+ let https_proxy = options. https_proxy. as_ref( ) . map( ToString :: to_string) ;
243
245
244
246
thread:: Builder :: new( )
245
247
. name( "sentry-transport" . to_string( ) )
246
248
. spawn( move || {
247
249
sentry_debug!( "spawning reqwest transport" ) ;
250
+ let http_client = http_client. unwrap_or_else( || {
251
+ let mut builder = Client :: builder( ) ;
252
+ if let Some ( url) = http_proxy {
253
+ builder = builder. proxy( Proxy :: http( & url) . unwrap( ) ) ;
254
+ } ;
255
+ if let Some ( url) = https_proxy {
256
+ builder = builder. proxy( Proxy :: https( & url) . unwrap( ) ) ;
257
+ } ;
258
+ builder. build( ) . unwrap( )
259
+ } ) ;
260
+
248
261
let url = dsn. store_api_url( ) . to_string( ) ;
249
262
250
263
while let Some ( event) = receiver. recv( ) . unwrap_or( None ) {
@@ -301,19 +314,8 @@ implement_http_transport! {
301
314
} ) . unwrap( )
302
315
}
303
316
304
- fn http_client( options: & ClientOptions , client: Option <Client >) -> Client {
305
- client. unwrap_or_else( || {
306
- let http_proxy = options. http_proxy. as_ref( ) . map( ToString :: to_string) ;
307
- let https_proxy = options. https_proxy. as_ref( ) . map( ToString :: to_string) ;
308
- let mut client = Client :: builder( ) ;
309
- if let Some ( url) = http_proxy {
310
- client = client. proxy( Proxy :: http( & url) . unwrap( ) ) ;
311
- } ;
312
- if let Some ( url) = https_proxy {
313
- client = client. proxy( Proxy :: https( & url) . unwrap( ) ) ;
314
- } ;
315
- client. build( ) . unwrap( )
316
- } )
317
+ fn http_client( _options: & ClientOptions , client: Option <Client >) -> Option <Client > {
318
+ client
317
319
}
318
320
}
319
321
@@ -421,8 +423,7 @@ implement_http_transport! {
421
423
match handle. response_code( ) {
422
424
Ok ( 429 ) => {
423
425
if let Some ( retry_after) = retry_after
424
- . as_ref( )
425
- . map( String :: as_str)
426
+ . as_deref( )
426
427
. and_then( parse_retry_after)
427
428
{
428
429
disabled = Some ( retry_after) ;
0 commit comments