[pmg-devel] [PATCH proxmox-acme-rs 1/1] client: add support for proxies
Stoiko Ivanov
s.ivanov at proxmox.com
Tue Nov 9 17:20:04 CET 2021
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 at proxmox.com>
---
src/client.rs | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/src/client.rs b/src/client.rs
index 8aeff97..9853fb6 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -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)> {
--
2.30.2
More information about the pmg-devel
mailing list