From 2f72e225f8b625cf85776ccece6c7a207c32eca7 Mon Sep 17 00:00:00 2001 From: Gabi Date: Wed, 28 Feb 2024 14:34:39 -0300 Subject: [PATCH] fix(connlib): update resource list on resource removal (#3796) oops --- rust/connlib/tunnel/src/client.rs | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/rust/connlib/tunnel/src/client.rs b/rust/connlib/tunnel/src/client.rs index ccd7c236c..917263d37 100644 --- a/rust/connlib/tunnel/src/client.rs +++ b/rust/connlib/tunnel/src/client.rs @@ -83,14 +83,8 @@ where .resource_ids .insert(resource_description.id(), resource_description); - self.callbacks.on_update_resources( - self.role_state - .resource_ids - .values() - .sorted() - .cloned() - .collect_vec(), - )?; + self.update_resource_list()?; + Ok(()) } @@ -113,6 +107,10 @@ where } } + if let Err(err) = self.update_resource_list() { + tracing::error!("Failed to update resource list: {err:#?}") + } + let Some(gateway_id) = self.role_state.resources_gateways.remove(&id) else { return; }; @@ -150,6 +148,18 @@ where } } + fn update_resource_list(&self) -> connlib_shared::Result<()> { + self.callbacks.on_update_resources( + self.role_state + .resource_ids + .values() + .sorted() + .cloned() + .collect_vec(), + )?; + Ok(()) + } + /// Sets the interface configuration and starts background tasks. #[tracing::instrument(level = "trace", skip(self))] pub fn set_interface(