From b4a4ba5e2cbf213de23f68a4f209af8829ccac91 Mon Sep 17 00:00:00 2001 From: Laurent Senta Date: Tue, 15 Feb 2022 09:03:37 +0100 Subject: [PATCH] core/src: tweak key ownership in PeerRecord constructor (#2510) --- core/src/peer_record.rs | 7 ++++--- protocols/rendezvous/src/client.rs | 2 +- protocols/rendezvous/src/server.rs | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/core/src/peer_record.rs b/core/src/peer_record.rs index 2e5d5a21d57a..e4566726fa5c 100644 --- a/core/src/peer_record.rs +++ b/core/src/peer_record.rs @@ -59,7 +59,7 @@ impl PeerRecord { /// Construct a new [`PeerRecord`] by authenticating the provided addresses with the given key. /// /// This is the same key that is used for authenticating every libp2p connection of your application, i.e. what you use when setting up your [`crate::transport::Transport`]. - pub fn new(key: Keypair, addresses: Vec) -> Result { + pub fn new(key: &Keypair, addresses: Vec) -> Result { use prost::Message; let seq = SystemTime::now() @@ -200,8 +200,9 @@ mod tests { #[test] fn roundtrip_envelope() { - let record = - PeerRecord::new(Keypair::generate_ed25519(), vec![HOME.parse().unwrap()]).unwrap(); + let key = Keypair::generate_ed25519(); + + let record = PeerRecord::new(&key, vec![HOME.parse().unwrap()]).unwrap(); let envelope = record.to_signed_envelope(); let reconstructed = PeerRecord::from_signed_envelope(envelope).unwrap(); diff --git a/protocols/rendezvous/src/client.rs b/protocols/rendezvous/src/client.rs index 9a64d59bfc0e..0195de377723 100644 --- a/protocols/rendezvous/src/client.rs +++ b/protocols/rendezvous/src/client.rs @@ -234,7 +234,7 @@ impl NetworkBehaviour for Behaviour { )); } - let action = match PeerRecord::new(self.keypair.clone(), external_addresses) { + let action = match PeerRecord::new(&self.keypair, external_addresses) { Ok(peer_record) => NetworkBehaviourAction::NotifyHandler { peer_id: rendezvous_node, event: handler::OutboundInEvent::NewSubstream { diff --git a/protocols/rendezvous/src/server.rs b/protocols/rendezvous/src/server.rs index ecfd8ce50c53..1ec933cee7d0 100644 --- a/protocols/rendezvous/src/server.rs +++ b/protocols/rendezvous/src/server.rs @@ -730,7 +730,7 @@ mod tests { ) -> NewRegistration { NewRegistration::new( Namespace::from_static(namespace), - PeerRecord::new(identity, vec!["/ip4/127.0.0.1/tcp/1234".parse().unwrap()]).unwrap(), + PeerRecord::new(&identity, vec!["/ip4/127.0.0.1/tcp/1234".parse().unwrap()]).unwrap(), ttl, ) }