Skip to content

Commit

Permalink
fix(iota-rosetta): fix panic when setting usize::MAX max_concurrent_r…
Browse files Browse the repository at this point in the history
…equests
  • Loading branch information
Thoralf-M committed Feb 6, 2025
1 parent 0ae9a7e commit da8337a
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 38 deletions.
50 changes: 25 additions & 25 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 1 addition & 5 deletions crates/iota-rosetta/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -193,11 +193,7 @@ impl RosettaServerCommand {

async fn wait_for_iota_client(rpc_address: String) -> IotaClient {
loop {
match IotaClientBuilder::default()
.max_concurrent_requests(usize::MAX)
.build(&rpc_address)
.await
{
match IotaClientBuilder::default().build(&rpc_address).await {
Ok(client) => return client,
Err(e) => {
warn!(
Expand Down
24 changes: 16 additions & 8 deletions crates/iota-sdk/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ pub const IOTA_MAINNET_URL: &str = "https://api.mainnet.iota.cafe";
/// ```
pub struct IotaClientBuilder {
request_timeout: Duration,
max_concurrent_requests: usize,
max_concurrent_requests: Option<usize>,
ws_url: Option<String>,
ws_ping_interval: Option<Duration>,
basic_auth: Option<(String, String)>,
Expand All @@ -159,7 +159,7 @@ impl Default for IotaClientBuilder {
fn default() -> Self {
Self {
request_timeout: Duration::from_secs(60),
max_concurrent_requests: 256,
max_concurrent_requests: None,
ws_url: None,
ws_ping_interval: None,
basic_auth: None,
Expand All @@ -176,7 +176,7 @@ impl IotaClientBuilder {

/// Set the max concurrent requests allowed.
pub fn max_concurrent_requests(mut self, max_concurrent_requests: usize) -> Self {
self.max_concurrent_requests = max_concurrent_requests;
self.max_concurrent_requests = Some(max_concurrent_requests);
self
}

Expand Down Expand Up @@ -247,24 +247,32 @@ impl IotaClientBuilder {
let ws = if let Some(url) = self.ws_url {
let mut builder = WsClientBuilder::default()
.max_request_size(2 << 30)
.max_concurrent_requests(self.max_concurrent_requests)
.set_headers(headers.clone())
.request_timeout(self.request_timeout);

if let Some(duration) = self.ws_ping_interval {
builder = builder.enable_ws_ping(PingConfig::new().ping_interval(duration))
}

if let Some(max_concurrent_requests) = self.max_concurrent_requests {
builder = builder.max_concurrent_requests(max_concurrent_requests);
}

builder.build(url).await.ok()
} else {
None
};

let http = HttpClientBuilder::default()
let mut http_builder = HttpClientBuilder::default()
.max_request_size(2 << 30)
.set_headers(headers.clone())
.request_timeout(self.request_timeout)
.build(http)?;
.set_headers(headers)
.request_timeout(self.request_timeout);

if let Some(max_concurrent_requests) = self.max_concurrent_requests {
http_builder = http_builder.max_concurrent_requests(max_concurrent_requests);
}

let http = http_builder.build(http)?;

let info = Self::get_server_info(&http, &ws).await?;

Expand Down

0 comments on commit da8337a

Please sign in to comment.