Skip to content

Commit

Permalink
rpc: Add HTTP timeout, defaulting to 30 seconds (#1380)
Browse files Browse the repository at this point in the history
* rpc: Add HTTP timeout, default 30 seconds.

Closes #1379.

* Add .changelog entry
  • Loading branch information
mdyring authored Mar 13, 2024
1 parent 27fedbb commit 7fc6d9a
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
2 changes: 2 additions & 0 deletions .changelog/unreleased/improvements/1379-rpc-http-timeout.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Add request timeout for the RPC HttpClient
([\#1379](https://github.com/informalsystems/tendermint-rs/issues/1379))
16 changes: 15 additions & 1 deletion rpc/src/client/transport/http.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use core::str::FromStr;

use async_trait::async_trait;
use reqwest::{header, Proxy};
use std::time::Duration;

use tendermint::{block::Height, evidence::Evidence, Hash};
use tendermint_config::net;
Expand Down Expand Up @@ -60,6 +61,7 @@ pub struct Builder {
url: HttpClientUrl,
compat: CompatMode,
proxy_url: Option<HttpClientUrl>,
timeout: Duration,
}

impl Builder {
Expand All @@ -82,9 +84,20 @@ impl Builder {
self
}

/// The timeout is applied from when the request starts connecting until
/// the response body has finished.
///
/// The default is 30 seconds.
pub fn timeout(mut self, duration: Duration) -> Self {
self.timeout = duration;
self
}

/// Try to create a client with the options specified for this builder.
pub fn build(self) -> Result<HttpClient, Error> {
let builder = reqwest::ClientBuilder::new().user_agent(USER_AGENT);
let builder = reqwest::ClientBuilder::new()
.user_agent(USER_AGENT)
.timeout(self.timeout);
let inner = match self.proxy_url {
None => builder.build().map_err(Error::http)?,
Some(proxy_url) => {
Expand Down Expand Up @@ -139,6 +152,7 @@ impl HttpClient {
url,
compat: Default::default(),
proxy_url: None,
timeout: Duration::from_secs(30),
}
}

Expand Down

0 comments on commit 7fc6d9a

Please sign in to comment.