From 4276a70eb1c719e2c7f26ac4db1f935f5c84c147 Mon Sep 17 00:00:00 2001 From: cloudhead Date: Thu, 18 Apr 2024 10:57:55 +0200 Subject: [PATCH] node: Event on local refs announcement This allows us to listen on the socket for when the user announces new refs. --- radicle-node/src/service.rs | 8 ++++++-- radicle/src/node/events.rs | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/radicle-node/src/service.rs b/radicle-node/src/service.rs index c43af9a4..2e399a87 100644 --- a/radicle-node/src/service.rs +++ b/radicle-node/src/service.rs @@ -1892,13 +1892,17 @@ where /// Announce our own refs for the given repo. fn announce_own_refs(&mut self, rid: RepoId, doc: Doc) -> Result, Error> { let refs = self.announce_refs(rid, doc, [self.node_id()])?; + let now = self.local_time(); // Update refs database with our signed refs branches. // This isn't strictly necessary for now, as we only use the database for fetches, and // we don't fetch our own refs that are announced, but it's for good measure. if let &[r] = refs.as_slice() { - let now = self.local_time(); - + self.emitter.emit(Event::LocalRefsAnnounced { + rid, + refs: r, + timestamp: now.as_millis(), + }); if let Err(e) = self.database_mut() .refs_mut() diff --git a/radicle/src/node/events.rs b/radicle/src/node/events.rs index 03ed406c..d5c3eab3 100644 --- a/radicle/src/node/events.rs +++ b/radicle/src/node/events.rs @@ -37,6 +37,11 @@ pub enum Event { nid: NodeId, reason: String, }, + LocalRefsAnnounced { + rid: RepoId, + refs: refs::RefsAt, + timestamp: Timestamp, + }, InventoryAnnounced { nid: NodeId, inventory: Vec,