Include "preview" in url preview user agent string. (fixes #303)
This is required for fixupx.com to serve previews instead of redirecting
This commit is contained in:
@@ -62,7 +62,11 @@ impl crate::Service for Service {
|
|||||||
fn make_clients(services: &Services) -> Result<Clients> {
|
fn make_clients(services: &Services) -> Result<Clients> {
|
||||||
macro_rules! with {
|
macro_rules! with {
|
||||||
($builder:ident => $make:expr) => {{
|
($builder:ident => $make:expr) => {{
|
||||||
let $builder = base(&services.config)?;
|
let $builder = base(&services.config, None)?;
|
||||||
|
$make.build()?
|
||||||
|
}};
|
||||||
|
($name:literal, $builder:ident => $make:expr) => {{
|
||||||
|
let $builder = base(&services.config, Some($name))?;
|
||||||
$make.build()?
|
$make.build()?
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
@@ -70,7 +74,7 @@ fn make_clients(services: &Services) -> Result<Clients> {
|
|||||||
Ok(Clients {
|
Ok(Clients {
|
||||||
default: with!(cb => cb.dns_resolver(Arc::clone(&services.resolver.resolver))),
|
default: with!(cb => cb.dns_resolver(Arc::clone(&services.resolver.resolver))),
|
||||||
|
|
||||||
url_preview: with!(cb => {
|
url_preview: with!("preview", cb => {
|
||||||
let interface = &services
|
let interface = &services
|
||||||
.config
|
.config
|
||||||
.url_preview_bound_interface;
|
.url_preview_bound_interface;
|
||||||
@@ -149,7 +153,14 @@ fn make_clients(services: &Services) -> Result<Clients> {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn base(config: &Config) -> Result<ClientBuilder> {
|
fn base(config: &Config, name: Option<&str>) -> Result<ClientBuilder> {
|
||||||
|
let mut user_agent = tuwunel_core::version::user_agent();
|
||||||
|
let user_agent_with_name;
|
||||||
|
if let Some(name) = name {
|
||||||
|
user_agent_with_name = format!("{user_agent} {name}");
|
||||||
|
user_agent = &user_agent_with_name;
|
||||||
|
}
|
||||||
|
|
||||||
let mut builder = Client::builder()
|
let mut builder = Client::builder()
|
||||||
.hickory_dns(true)
|
.hickory_dns(true)
|
||||||
.connect_timeout(Duration::from_secs(config.request_conn_timeout))
|
.connect_timeout(Duration::from_secs(config.request_conn_timeout))
|
||||||
@@ -157,7 +168,7 @@ fn base(config: &Config) -> Result<ClientBuilder> {
|
|||||||
.timeout(Duration::from_secs(config.request_total_timeout))
|
.timeout(Duration::from_secs(config.request_total_timeout))
|
||||||
.pool_idle_timeout(Duration::from_secs(config.request_idle_timeout))
|
.pool_idle_timeout(Duration::from_secs(config.request_idle_timeout))
|
||||||
.pool_max_idle_per_host(config.request_idle_per_host.into())
|
.pool_max_idle_per_host(config.request_idle_per_host.into())
|
||||||
.user_agent(tuwunel_core::version::user_agent())
|
.user_agent(user_agent)
|
||||||
.redirect(redirect::Policy::limited(6))
|
.redirect(redirect::Policy::limited(6))
|
||||||
.danger_accept_invalid_certs(config.allow_invalid_tls_certificates)
|
.danger_accept_invalid_certs(config.allow_invalid_tls_certificates)
|
||||||
.tls_certs_merge(
|
.tls_certs_merge(
|
||||||
|
|||||||
Reference in New Issue
Block a user