From 795d3238ad9906e0f422965db588015206913a7c Mon Sep 17 00:00:00 2001 From: asonix Date: Fri, 28 Jul 2023 17:46:23 -0500 Subject: [PATCH] Hide nodes that failed breakers from index page --- src/data/state.rs | 4 ++++ src/requests.rs | 2 +- src/routes/index.rs | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/data/state.rs b/src/data/state.rs index 7dcc0dd..19798d3 100644 --- a/src/data/state.rs +++ b/src/data/state.rs @@ -93,6 +93,10 @@ impl State { self.object_cache.write().unwrap().put(object_id, actor_id); } + pub(crate) fn is_connected(&self, iri: &IriString) -> bool { + self.breakers.should_try(iri) + } + #[tracing::instrument(level = "debug", name = "Building state", skip_all)] pub(crate) async fn build(db: Db) -> Result { let private_key = if let Ok(Some(key)) = db.private_key().await { diff --git a/src/requests.rs b/src/requests.rs index ee88272..e693c31 100644 --- a/src/requests.rs +++ b/src/requests.rs @@ -39,7 +39,7 @@ impl std::fmt::Debug for Breakers { } impl Breakers { - fn should_try(&self, url: &IriString) -> bool { + pub(crate) fn should_try(&self, url: &IriString) -> bool { if let Some(authority) = url.authority_str() { if let Some(breaker) = self.inner.get(authority) { breaker.should_try() diff --git a/src/routes/index.rs b/src/routes/index.rs index cdd2a91..0d1bb23 100644 --- a/src/routes/index.rs +++ b/src/routes/index.rs @@ -42,6 +42,10 @@ pub(crate) async fn route( let mut local = Vec::new(); for node in all_nodes { + if !state.is_connected(&node.base) { + continue; + } + if node .base .authority_str()