mirror of
https://git.proxmox.com/git/proxmox
synced 2025-06-11 04:19:49 +00:00
client: add support for proxies
by storing the proxy url as string in the struct and setting it on each invocation of `execute`, since execute calls reset on the curl::easy::Easy object. Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com> Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
parent
cb89d97df1
commit
ba2da9d125
@ -91,6 +91,7 @@ impl Headers {
|
||||
struct Inner {
|
||||
easy: easy::Easy,
|
||||
nonce: Option<String>,
|
||||
proxy: Option<String>,
|
||||
}
|
||||
|
||||
impl Inner {
|
||||
@ -98,6 +99,7 @@ impl Inner {
|
||||
Self {
|
||||
easy: easy::Easy::new(),
|
||||
nonce: None,
|
||||
proxy: None,
|
||||
}
|
||||
}
|
||||
|
||||
@ -120,6 +122,10 @@ impl Inner {
|
||||
|
||||
self.easy.url(url)?;
|
||||
|
||||
if let Some(p) = &self.proxy {
|
||||
self.easy.proxy(&p)?;
|
||||
}
|
||||
|
||||
{
|
||||
let mut transfer = self.easy.transfer();
|
||||
|
||||
@ -156,6 +162,10 @@ impl Inner {
|
||||
})
|
||||
}
|
||||
|
||||
pub fn set_proxy(&mut self, proxy: String) {
|
||||
self.proxy = Some(proxy);
|
||||
}
|
||||
|
||||
/// Low-level API to run an n API request. This automatically updates the current nonce!
|
||||
fn run_request(&mut self, request: Request) -> Result<HttpResponse, Error> {
|
||||
self.easy.reset();
|
||||
@ -586,6 +596,11 @@ impl Client {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Set a proxy
|
||||
pub fn set_proxy(&mut self, proxy: String) {
|
||||
self.inner.set_proxy(proxy)
|
||||
}
|
||||
}
|
||||
|
||||
fn parse_header(data: &[u8]) -> Option<(&str, &str)> {
|
||||
|
Loading…
Reference in New Issue
Block a user