make http connector timeout longer

http response may be slow, make its timeout longer.
This commit is contained in:
sijie.sun
2025-03-07 20:58:03 +08:00
committed by Sijie.Sun
parent 155f8a2ba2
commit 24213a874a
2 changed files with 8 additions and 6 deletions

View File

@@ -88,7 +88,7 @@ impl HttpTunnelConnector {
query.shuffle(&mut rand::thread_rng()); query.shuffle(&mut rand::thread_rng());
if query.is_empty() { if query.is_empty() {
return Err(Error::InvalidUrl(format!( return Err(Error::InvalidUrl(format!(
"no valid connector url found in url: url: {}", "no valid connector url found in url: {}",
url url
))); )));
} }
@@ -130,9 +130,10 @@ impl HttpTunnelConnector {
return create_connector_by_url(line, &self.global_ctx).await; return create_connector_by_url(line, &self.global_ctx).await;
} }
Err(Error::InvalidUrl( Err(Error::InvalidUrl(format!(
"no valid connector url found".to_string(), "no valid connector url found, response body: {}",
)) body
)))
} }
#[tracing::instrument(ret)] #[tracing::instrument(ret)]
@@ -155,7 +156,7 @@ impl HttpTunnelConnector {
Request::new(&uri) Request::new(&uri)
.redirect_policy(RedirectPolicy::Limit(0)) .redirect_policy(RedirectPolicy::Limit(0))
.timeout(std::time::Duration::from_secs(5)) .timeout(std::time::Duration::from_secs(60))
.send(&mut *body_clone.write().unwrap()) .send(&mut *body_clone.write().unwrap())
.with_context(|| format!("sending http request failed. url: {}", uri)) .with_context(|| format!("sending http request failed. url: {}", uri))
}) })

View File

@@ -366,7 +366,8 @@ impl ManualConnectorManager {
))); )));
for ip_version in ip_versions { for ip_version in ip_versions {
let ret = timeout( let ret = timeout(
std::time::Duration::from_secs(1), // allow http connector to wait longer
std::time::Duration::from_secs(if dead_url.starts_with("http") { 20 } else { 1 }),
Self::conn_reconnect_with_ip_version( Self::conn_reconnect_with_ip_version(
data.clone(), data.clone(),
dead_url.clone(), dead_url.clone(),