mirror of
https://git.proxmox.com/git/proxmox
synced 2025-06-12 13:15:23 +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 {
|
struct Inner {
|
||||||
easy: easy::Easy,
|
easy: easy::Easy,
|
||||||
nonce: Option<String>,
|
nonce: Option<String>,
|
||||||
|
proxy: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Inner {
|
impl Inner {
|
||||||
@ -98,6 +99,7 @@ impl Inner {
|
|||||||
Self {
|
Self {
|
||||||
easy: easy::Easy::new(),
|
easy: easy::Easy::new(),
|
||||||
nonce: None,
|
nonce: None,
|
||||||
|
proxy: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,6 +122,10 @@ impl Inner {
|
|||||||
|
|
||||||
self.easy.url(url)?;
|
self.easy.url(url)?;
|
||||||
|
|
||||||
|
if let Some(p) = &self.proxy {
|
||||||
|
self.easy.proxy(&p)?;
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
let mut transfer = self.easy.transfer();
|
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!
|
/// 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> {
|
fn run_request(&mut self, request: Request) -> Result<HttpResponse, Error> {
|
||||||
self.easy.reset();
|
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)> {
|
fn parse_header(data: &[u8]) -> Option<(&str, &str)> {
|
||||||
|
Loading…
Reference in New Issue
Block a user