pulsar_network/client/
send.rs1use crate::envelope::{Envelope, Kind};
2use crate::{Client, Message};
3use crate::Peer;
4use fides::chacha20poly1305;
5use std::sync::Arc;
6
7impl Client {
8
9 pub fn send(&self, message: Message, peer: Peer) {
10
11 let outgoing_clone = Arc::clone(&self.outgoing_socket);
12
13 let outgoing = outgoing_clone.lock().unwrap();
14
15 match chacha20poly1305::encrypt(&peer.shared_key, &message.to_bytes()) {
16
17 Ok(cipher) => {
18
19 let envelope = Envelope::new(Kind::Encrypted, &cipher, &self.public_key, &self.route);
20
21 let _r = outgoing.send_to(&envelope.to_bytes(), peer.address);
22
23 },
24 Err(_) => ()
25 }
26 }
27}