From 2499317589d61230cc03bb13af701d10862b4375 Mon Sep 17 00:00:00 2001 From: Alexis Sellier Date: Tue, 18 Oct 2022 12:37:19 +0200 Subject: [PATCH] Implement `Handle::listening` Signed-off-by: Alexis Sellier --- radicle-node/src/client/handle.rs | 6 ++++++ radicle-node/src/test/handle.rs | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/radicle-node/src/client/handle.rs b/radicle-node/src/client/handle.rs index 12280ed8..17ffe0de 100644 --- a/radicle-node/src/client/handle.rs +++ b/radicle-node/src/client/handle.rs @@ -56,6 +56,10 @@ pub struct Handle { } impl traits::Handle for Handle { + fn listening(&self) -> Result { + self.listening.recv().map_err(Error::from) + } + /// Retrieve or update the given project from the network. fn fetch(&self, id: Id) -> Result { let (sender, receiver) = chan::bounded(1); @@ -142,6 +146,8 @@ pub mod traits { use super::*; pub trait Handle { + /// Wait for the node's listening socket to be bound. + fn listening(&self) -> Result; /// Retrieve or update the project from network. fn fetch(&self, id: Id) -> Result; /// Start tracking the given project. Doesn't do anything if the project is already diff --git a/radicle-node/src/test/handle.rs b/radicle-node/src/test/handle.rs index deb33e3a..5606b868 100644 --- a/radicle-node/src/test/handle.rs +++ b/radicle-node/src/test/handle.rs @@ -14,6 +14,10 @@ pub struct Handle { } impl traits::Handle for Handle { + fn listening(&self) -> Result { + unimplemented!() + } + fn fetch(&self, _id: Id) -> Result { Ok(FetchLookup::NotFound) }