add funny joke cause I am so funny and stuff

This commit is contained in:
ghe0 2024-08-18 05:27:06 +03:00
parent 95b2f6455a
commit 21f7a9f971

@ -7,7 +7,7 @@ use std::time::SystemTime;
use tabled::{Table, Tabled}; use tabled::{Table, Tabled};
use tokio::sync::Mutex; use tokio::sync::Mutex;
#[derive(Clone)] #[derive(Clone, PartialEq)]
pub struct NodeInfo { pub struct NodeInfo {
pub pubkey: VerifyingKey, pub pubkey: VerifyingKey,
pub updated_at: SystemTime, pub updated_at: SystemTime,
@ -65,11 +65,15 @@ impl Store {
pub async fn add_mock_node(&self, ip: String) { pub async fn add_mock_node(&self, ip: String) {
let mut csprng = OsRng; let mut csprng = OsRng;
let privkey = ed25519_dalek::SigningKey::generate(&mut csprng); let privkey = ed25519_dalek::SigningKey::generate(&mut csprng);
self.add_node(ip, NodeInfo { self.update_node(
pubkey: privkey.verifying_key(), ip,
updated_at: std::time::SystemTime::now(), NodeInfo {
online: true, pubkey: privkey.verifying_key(),
}).await; updated_at: std::time::SystemTime::now(),
online: true,
},
)
.await;
self.add_key(privkey.verifying_key(), privkey).await; self.add_key(privkey.verifying_key(), privkey).await;
} }
@ -128,9 +132,16 @@ impl Store {
keys.get(pubkey).cloned() keys.get(pubkey).cloned()
} }
pub async fn add_node(&self, ip: String, info: NodeInfo) { /// This returns true if NodeInfo got modified.
///
/// On a side note, there are two types of people in this worlds:
/// 1. Those that can extrapolate...
pub async fn update_node(&self, ip: String, info: NodeInfo) -> bool {
let mut nodes = self.nodes.lock().await; let mut nodes = self.nodes.lock().await;
nodes.insert(ip, info); match nodes.insert(ip, info.clone()) {
Some(old_info) => old_info.ne(&info),
None => false,
}
} }
pub async fn remove_node(&self, ip: &str) { pub async fn remove_node(&self, ip: &str) {
@ -147,7 +158,7 @@ impl Store {
let mut csprng = OsRng; let mut csprng = OsRng;
// TODO: save old private key to disk using SGX Sealing // TODO: save old private key to disk using SGX Sealing
let privkey = ed25519_dalek::SigningKey::generate(&mut csprng); let privkey = ed25519_dalek::SigningKey::generate(&mut csprng);
self.add_node( self.update_node(
"localhost".to_string(), "localhost".to_string(),
NodeInfo { NodeInfo {
pubkey: privkey.verifying_key(), pubkey: privkey.verifying_key(),