use reqwest::Client;
use crate::{config::DownloadOptions, error::OdlError};
pub(crate) fn client_for(net: &DownloadOptions) -> Result<Client, OdlError> {
let mut builder = Client::builder();
if net.no_proxy() {
builder = builder.no_proxy();
} else if let Some(proxy) = net.proxy_client_setting() {
builder = builder.proxy(proxy);
}
if net.accept_invalid_certs() {
builder = builder.danger_accept_invalid_certs(true);
}
if let Some(timeout) = net.connect_timeout() {
builder = builder.connect_timeout(timeout);
}
builder.build().map_err(|e| OdlError::Other {
message: format!("could not create an HTTP client: {e}"),
origin: Box::new(e),
})
}