* Re: [pbs-devel] [PATCH proxmox-backup 2/2] tools/http: make user agent configurable
@ 2021-04-28 15:31 Dietmar Maurer
0 siblings, 0 replies; 4+ messages in thread
From: Dietmar Maurer @ 2021-04-28 15:31 UTC (permalink / raw)
To: Wolfgang Bumiller; +Cc: pbs-devel
> On 04/28/2021 4:23 PM Wolfgang Bumiller <w.bumiller@proxmox.com> wrote:
>
>
> Do we really need to have more than 1 user agent string in what's
> basically a non-exported utility, though?
I though that suggestion came from you?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [pbs-devel] [PATCH proxmox-backup 2/2] tools/http: make user agent configurable
@ 2021-04-28 15:44 Dietmar Maurer
0 siblings, 0 replies; 4+ messages in thread
From: Dietmar Maurer @ 2021-04-28 15:44 UTC (permalink / raw)
To: Proxmox Backup Server development discussion
Ignore me, I miss-read your patch.
Anyhow, my plan was to work towards are more generic client. IMHO it does
not harm to expose such things.
But yes, we do not use it currently.
> On 04/28/2021 5:31 PM Dietmar Maurer <dietmar@proxmox.com> wrote:
>
>
> > On 04/28/2021 4:23 PM Wolfgang Bumiller <w.bumiller@proxmox.com> wrote:
> >
> >
> > Do we really need to have more than 1 user agent string in what's
> > basically a non-exported utility, though?
>
> I though that suggestion came from you?
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pbs-devel] [PATCH proxmox-backup 1/2] tools/http: set USER_AGENT inside request
@ 2021-04-28 10:03 Dietmar Maurer
2021-04-28 10:03 ` [pbs-devel] [PATCH proxmox-backup 2/2] tools/http: make user agent configurable Dietmar Maurer
0 siblings, 1 reply; 4+ messages in thread
From: Dietmar Maurer @ 2021-04-28 10:03 UTC (permalink / raw)
To: pbs-devel
---
src/tools/http.rs | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/tools/http.rs b/src/tools/http.rs
index f4ccefc9..a4299fb4 100644
--- a/src/tools/http.rs
+++ b/src/tools/http.rs
@@ -107,6 +107,8 @@ pub struct SimpleHttp {
impl SimpleHttp {
+ pub const DEFAULT_USER_AGENT_STRING: &'static str = "proxmox-backup-client/1.0";
+
pub fn new(proxy_config: Option<ProxyConfig>) -> Self {
let ssl_connector = SslConnector::builder(SslMethod::tls()).unwrap().build();
Self::with_ssl_connector(ssl_connector, proxy_config)
@@ -145,7 +147,14 @@ impl SimpleHttp {
}
pub async fn request(&self, mut request: Request<Body>) -> Result<Response<Body>, Error> {
+
+ request.headers_mut().insert(
+ hyper::header::USER_AGENT,
+ HeaderValue::from_str(Self::DEFAULT_USER_AGENT_STRING)?,
+ );
+
self.add_proxy_headers(&mut request)?;
+
self.client.request(request)
.map_err(Error::from)
.await
@@ -168,7 +177,6 @@ impl SimpleHttp {
let request = Request::builder()
.method("POST")
.uri(uri)
- .header("User-Agent", "proxmox-backup-client/1.0")
.header(hyper::header::CONTENT_TYPE, content_type)
.body(body)?;
@@ -183,8 +191,7 @@ impl SimpleHttp {
let mut request = Request::builder()
.method("GET")
- .uri(uri)
- .header("User-Agent", "proxmox-backup-client/1.0");
+ .uri(uri);
if let Some(hs) = extra_headers {
for (h, v) in hs.iter() {
--
2.20.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pbs-devel] [PATCH proxmox-backup 2/2] tools/http: make user agent configurable
2021-04-28 10:03 [pbs-devel] [PATCH proxmox-backup 1/2] tools/http: set USER_AGENT inside request Dietmar Maurer
@ 2021-04-28 10:03 ` Dietmar Maurer
2021-04-28 14:23 ` Wolfgang Bumiller
0 siblings, 1 reply; 4+ messages in thread
From: Dietmar Maurer @ 2021-04-28 10:03 UTC (permalink / raw)
To: pbs-devel
---
src/tools/http.rs | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/src/tools/http.rs b/src/tools/http.rs
index a4299fb4..8656e685 100644
--- a/src/tools/http.rs
+++ b/src/tools/http.rs
@@ -103,6 +103,7 @@ impl ProxyConfig {
pub struct SimpleHttp {
client: Client<HttpsConnector, Body>,
proxy_authorization: Option<String>, // Proxy-Authorization header value
+ user_agent: Option<String>,
}
impl SimpleHttp {
@@ -129,7 +130,12 @@ impl SimpleHttp {
https.set_proxy(proxy_config);
}
let client = Client::builder().build(https);
- Self { client, proxy_authorization}
+ Self { client, proxy_authorization, user_agent: None }
+ }
+
+ pub fn set_user_agent(&mut self, user_agent: &str) -> Result<(), Error> {
+ self.user_agent = Some(user_agent.to_owned());
+ Ok(())
}
fn add_proxy_headers(&self, request: &mut Request<Body>) -> Result<(), Error> {
@@ -147,11 +153,13 @@ impl SimpleHttp {
}
pub async fn request(&self, mut request: Request<Body>) -> Result<Response<Body>, Error> {
+ let user_agent = if let Some(ref user_agent) = self.user_agent {
+ HeaderValue::from_str(&user_agent)?
+ } else {
+ HeaderValue::from_str(Self::DEFAULT_USER_AGENT_STRING)?
+ };
- request.headers_mut().insert(
- hyper::header::USER_AGENT,
- HeaderValue::from_str(Self::DEFAULT_USER_AGENT_STRING)?,
- );
+ request.headers_mut().insert(hyper::header::USER_AGENT, user_agent);
self.add_proxy_headers(&mut request)?;
--
2.20.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [pbs-devel] [PATCH proxmox-backup 2/2] tools/http: make user agent configurable
2021-04-28 10:03 ` [pbs-devel] [PATCH proxmox-backup 2/2] tools/http: make user agent configurable Dietmar Maurer
@ 2021-04-28 14:23 ` Wolfgang Bumiller
0 siblings, 0 replies; 4+ messages in thread
From: Wolfgang Bumiller @ 2021-04-28 14:23 UTC (permalink / raw)
To: Dietmar Maurer; +Cc: pbs-devel
Do we really need to have more than 1 user agent string in what's
basically a non-exported utility, though?
On Wed, Apr 28, 2021 at 12:03:58PM +0200, Dietmar Maurer wrote:
> ---
> src/tools/http.rs | 18 +++++++++++++-----
> 1 file changed, 13 insertions(+), 5 deletions(-)
>
> diff --git a/src/tools/http.rs b/src/tools/http.rs
> index a4299fb4..8656e685 100644
> --- a/src/tools/http.rs
> +++ b/src/tools/http.rs
> @@ -103,6 +103,7 @@ impl ProxyConfig {
> pub struct SimpleHttp {
> client: Client<HttpsConnector, Body>,
> proxy_authorization: Option<String>, // Proxy-Authorization header value
> + user_agent: Option<String>,
> }
>
> impl SimpleHttp {
> @@ -129,7 +130,12 @@ impl SimpleHttp {
> https.set_proxy(proxy_config);
> }
> let client = Client::builder().build(https);
> - Self { client, proxy_authorization}
> + Self { client, proxy_authorization, user_agent: None }
> + }
> +
> + pub fn set_user_agent(&mut self, user_agent: &str) -> Result<(), Error> {
> + self.user_agent = Some(user_agent.to_owned());
> + Ok(())
> }
>
> fn add_proxy_headers(&self, request: &mut Request<Body>) -> Result<(), Error> {
> @@ -147,11 +153,13 @@ impl SimpleHttp {
> }
>
> pub async fn request(&self, mut request: Request<Body>) -> Result<Response<Body>, Error> {
> + let user_agent = if let Some(ref user_agent) = self.user_agent {
> + HeaderValue::from_str(&user_agent)?
> + } else {
> + HeaderValue::from_str(Self::DEFAULT_USER_AGENT_STRING)?
> + };
>
> - request.headers_mut().insert(
> - hyper::header::USER_AGENT,
> - HeaderValue::from_str(Self::DEFAULT_USER_AGENT_STRING)?,
> - );
> + request.headers_mut().insert(hyper::header::USER_AGENT, user_agent);
>
> self.add_proxy_headers(&mut request)?;
>
> --
> 2.20.1
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-04-28 15:45 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-28 15:31 [pbs-devel] [PATCH proxmox-backup 2/2] tools/http: make user agent configurable Dietmar Maurer
-- strict thread matches above, loose matches on Subject: below --
2021-04-28 15:44 Dietmar Maurer
2021-04-28 10:03 [pbs-devel] [PATCH proxmox-backup 1/2] tools/http: set USER_AGENT inside request Dietmar Maurer
2021-04-28 10:03 ` [pbs-devel] [PATCH proxmox-backup 2/2] tools/http: make user agent configurable Dietmar Maurer
2021-04-28 14:23 ` Wolfgang Bumiller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox