//! # HTTP module. use std::time::Duration; use anyhow::Result; use crate::socks::Socks5Config; const HTTP_TIMEOUT: Duration = Duration::from_secs(30); pub(crate) fn get_client(socks5_config: Option) -> Result { let builder = reqwest::ClientBuilder::new().timeout(HTTP_TIMEOUT); let builder = if let Some(socks5_config) = socks5_config { let proxy = reqwest::Proxy::all(socks5_config.to_url())?; builder.proxy(proxy) } else { // Disable usage of "system" proxy configured via environment variables. // It is enabled by default in `reqwest`, see // // for documentation. builder.no_proxy() }; Ok(builder.build()?) }