diff options
author | Alex Auvolat <alex@adnab.me> | 2022-07-21 20:22:56 +0200 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2022-07-21 20:22:56 +0200 |
commit | 4934ed726d51913afd97ca937d0ece39ef8b7371 (patch) | |
tree | ad9560d819bfcbab9e35ee806bd9b2adaa8f9de5 /src/peering | |
parent | 7d148c7e764d563efa3bccc0f14f50867db38ef1 (diff) | |
download | netapp-4934ed726d51913afd97ca937d0ece39ef8b7371.tar.gz netapp-4934ed726d51913afd97ca937d0ece39ef8b7371.zip |
Propose alternative API
Diffstat (limited to 'src/peering')
-rw-r--r-- | src/peering/basalt.rs | 17 | ||||
-rw-r--r-- | src/peering/fullmesh.rs | 12 |
2 files changed, 20 insertions, 9 deletions
diff --git a/src/peering/basalt.rs b/src/peering/basalt.rs index d7bc6a8..71dea84 100644 --- a/src/peering/basalt.rs +++ b/src/peering/basalt.rs @@ -468,15 +468,24 @@ impl Basalt { #[async_trait] impl EndpointHandler<PullMessage> for Basalt { - async fn handle(self: &Arc<Self>, _pullmsg: PullMessage, _from: NodeID) -> PushMessage { - self.make_push_message() + async fn handle( + self: &Arc<Self>, + _pullmsg: Req<PullMessage>, + _from: NodeID, + ) -> Resp<PullMessage> { + Resp::new(self.make_push_message()) } } #[async_trait] impl EndpointHandler<PushMessage> for Basalt { - async fn handle(self: &Arc<Self>, pushmsg: PushMessage, _from: NodeID) { - self.handle_peer_list(&pushmsg.peers[..]); + async fn handle( + self: &Arc<Self>, + pushmsg: Req<PushMessage>, + _from: NodeID, + ) -> Resp<PushMessage> { + self.handle_peer_list(&pushmsg.msg().peers[..]); + Resp::new(()) } } diff --git a/src/peering/fullmesh.rs b/src/peering/fullmesh.rs index f8348af..9b7b666 100644 --- a/src/peering/fullmesh.rs +++ b/src/peering/fullmesh.rs @@ -583,13 +583,14 @@ impl FullMeshPeeringStrategy { #[async_trait] impl EndpointHandler<PingMessage> for FullMeshPeeringStrategy { - async fn handle(self: &Arc<Self>, ping: PingMessage, from: NodeID) -> PingMessage { + async fn handle(self: &Arc<Self>, ping: Req<PingMessage>, from: NodeID) -> Resp<PingMessage> { + let ping = ping.msg(); let ping_resp = PingMessage { id: ping.id, peer_list_hash: self.known_hosts.read().unwrap().hash, }; debug!("Ping from {}", hex::encode(&from[..8])); - ping_resp + Resp::new(ping_resp) } } @@ -597,11 +598,12 @@ impl EndpointHandler<PingMessage> for FullMeshPeeringStrategy { impl EndpointHandler<PeerListMessage> for FullMeshPeeringStrategy { async fn handle( self: &Arc<Self>, - peer_list: PeerListMessage, + peer_list: Req<PeerListMessage>, _from: NodeID, - ) -> PeerListMessage { + ) -> Resp<PeerListMessage> { + let peer_list = peer_list.msg(); self.handle_peer_list(&peer_list.list[..]); let peer_list = KnownHosts::map_into_vec(&self.known_hosts.read().unwrap().list); - PeerListMessage { list: peer_list } + Resp::new(PeerListMessage { list: peer_list }) } } |