This commit is contained in:
Christien Rioux
2023-09-02 18:50:12 -04:00
parent a77f80a8a9
commit b3354194e0
12 changed files with 70 additions and 161 deletions

View File

@@ -83,11 +83,11 @@ thiserror = "1.0.47"
# Data structures
enumset = { version = "1.1.2", features = ["serde"] }
keyvaluedb = { version = "0.1.0", git = "https://gitlab.com/veilid/keyvaluedb.git", rev = "1430135c7e3b1d0176c0b45f64e8c0a9d85d44d0" }
keyvaluedb = "0.1.0"
range-set-blaze = "0.1.9"
weak-table = "0.3.2"
generic-array = "0.14.7"
hashlink = { version = "0.8.2", git = "https://gitlab.com/veilid/hashlink.git", rev = "add585db56765b4553b45d535e0f8d0a62a975c6", features = [
hashlink = { version = "0.8.4", git = "https://gitlab.com/veilid/hashlink.git", rev = "14ea55b8b148f51b834c0c7ad5755066400d8c71", features = [
"serde_impl",
] }
@@ -166,8 +166,8 @@ futures-util = { version = "0.3.28", default-features = false, features = [
] }
# Data structures
keyring-manager = { version = "0.5.0", git = "https://gitlab.com/veilid/keyring-manager.git", rev = "e00be7d4130f3e3f69548121de26b24aeb935df2" }
keyvaluedb-sqlite = { version = "0.1.0", git = "https://gitlab.com/veilid/keyvaluedb.git", rev = "1430135c7e3b1d0176c0b45f64e8c0a9d85d44d0" }
keyring-manager = "0.5.0"
keyvaluedb-sqlite = "0.1.0"
# Network
async-tungstenite = { version = "0.23.0", features = ["async-tls"] }
@@ -208,7 +208,7 @@ wasm-logger = "0.2.0"
tracing-wasm = "0.2.1"
# Data Structures
keyvaluedb-web = { version = "0.1.0", git = "https://gitlab.com/veilid/keyvaluedb.git", rev = "1430135c7e3b1d0176c0b45f64e8c0a9d85d44d0" }
keyvaluedb-web = "0.1.0"
### Configuration for WASM32 'web-sys' crate
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]

View File

@@ -40,6 +40,6 @@ pub fn bytes_to_cache(bytes: &[u8], cache: &mut DHCache) {
let v = DHCacheValue {
shared_secret: SharedSecret::new(d[64..96].try_into().expect("asdf")),
};
cache.insert(k, v, |_k, _v| {});
cache.insert(k, v);
}
}

View File

@@ -310,13 +310,10 @@ impl Crypto {
secret: &SecretKey,
) -> VeilidAPIResult<SharedSecret> {
Ok(
match self.inner.lock().dh_cache.entry(
DHCacheKey {
key: *key,
secret: *secret,
},
|_k, _v| {},
) {
match self.inner.lock().dh_cache.entry(DHCacheKey {
key: *key,
secret: *secret,
}) {
Entry::Occupied(e) => e.get().shared_secret,
Entry::Vacant(e) => {
let shared_secret = vcrypto.compute_dh(key, secret)?;

View File

@@ -168,9 +168,7 @@ impl ConnectionTable {
};
// Add the connection to the table
let res = inner.conn_by_id[protocol_index].insert(id, network_connection, |_k, _v| {
// never lrus, unbounded
});
let res = inner.conn_by_id[protocol_index].insert(id, network_connection);
assert!(res.is_none());
// if we have reached the maximum number of connections per protocol type

View File

@@ -454,9 +454,7 @@ impl NetworkManager {
pub fn update_client_whitelist(&self, client: TypedKey) {
let mut inner = self.inner.lock();
match inner.client_whitelist.entry(client, |_k, _v| {
// do nothing on LRU evict
}) {
match inner.client_whitelist.entry(client) {
hashlink::lru_cache::Entry::Occupied(mut entry) => {
entry.get_mut().last_seen_ts = get_aligned_timestamp()
}
@@ -472,9 +470,7 @@ impl NetworkManager {
pub fn check_client_whitelist(&self, client: TypedKey) -> bool {
let mut inner = self.inner.lock();
match inner.client_whitelist.entry(client, |_k, _v| {
// do nothing on LRU evict
}) {
match inner.client_whitelist.entry(client) {
hashlink::lru_cache::Entry::Occupied(mut entry) => {
entry.get_mut().last_seen_ts = get_aligned_timestamp();
true

View File

@@ -461,7 +461,7 @@ impl NetworkManager {
self.inner
.lock()
.node_contact_method_cache
.insert(ncm_key, ncm.clone(), |_, _| {});
.insert(ncm_key, ncm.clone());
Ok(ncm)
}

View File

@@ -45,9 +45,7 @@ impl NetworkManager {
inner
.stats
.per_address_stats
.entry(PerAddressStatsKey(addr), |_k, _v| {
// do nothing on LRU evict
})
.entry(PerAddressStatsKey(addr))
.or_insert(PerAddressStats::default())
.transfer_stats_accounting
.add_up(bytes);
@@ -63,9 +61,7 @@ impl NetworkManager {
inner
.stats
.per_address_stats
.entry(PerAddressStatsKey(addr), |_k, _v| {
// do nothing on LRU evict
})
.entry(PerAddressStatsKey(addr))
.or_insert(PerAddressStats::default())
.transfer_stats_accounting
.add_down(bytes);

View File

@@ -117,9 +117,7 @@ impl NetworkManager {
.public_address_check_cache
.entry(addr_proto_type_key)
.or_insert_with(|| LruCache::new(PUBLIC_ADDRESS_CHECK_CACHE_SIZE));
pacc.insert(ipblock, socket_address, |_k, _v| {
// do nothing on LRU evict
});
pacc.insert(ipblock, socket_address);
// Determine if our external address has likely changed
let mut bad_public_address_detection_punishment: Option<

View File

@@ -148,10 +148,13 @@ impl RouteSpecStoreCache {
}
let mut dead = None;
self.remote_private_route_set_cache
.insert(id, rprinfo, |dead_id, dead_rpri| {
self.remote_private_route_set_cache.insert_with_callback(
id,
rprinfo,
|dead_id, dead_rpri| {
dead = Some((dead_id, dead_rpri));
});
},
);
if let Some((dead_id, dead_rpri)) = dead {
// If anything LRUs out, remove from the by-key table
@@ -285,12 +288,7 @@ impl RouteSpecStoreCache {
pr_pubkey,
};
if let Some(v) = self
.compiled_route_cache
.insert(key, safety_route, |_k, _v| {
// Do nothing on LRU evict
})
{
if let Some(v) = self.compiled_route_cache.insert(key, safety_route) {
log_rtab!(error "route cache already contained key: sr_pubkey={:?}, pr_pubkey={:?}", v.public_key, pr_pubkey);
}
}

View File

@@ -930,9 +930,7 @@ impl RoutingTableInner {
pub fn touch_recent_peer(&mut self, node_id: TypedKey, last_connection: ConnectionDescriptor) {
self.recent_peers
.insert(node_id, RecentPeersEntry { last_connection }, |_k, _v| {
// do nothing on lru eviction
});
.insert(node_id, RecentPeersEntry { last_connection });
}
//////////////////////////////////////////////////////////////////////

View File

@@ -113,7 +113,7 @@ where
}
// add to index and ensure we deduplicate in the case of an error
if let Some(v) = self.record_index.insert(ri.0, ri.1, |k, v| {
if let Some(v) = self.record_index.insert_with_callback(ri.0, ri.1, |k, v| {
// If the configuration change, we only want to keep the 'limits.max_records' records
dead_records.push((k, v));
}) {
@@ -143,10 +143,13 @@ where
let record_data_total_size = record_data.total_size();
// Write to subkey cache
let mut dead_size = 0usize;
if let Some(old_record_data) = self.subkey_cache.insert(key, record_data, |_, v| {
// LRU out
dead_size += v.total_size();
}) {
if let Some(old_record_data) =
self.subkey_cache
.insert_with_callback(key, record_data, |_, v| {
// LRU out
dead_size += v.total_size();
})
{
// Old data
dead_size += old_record_data.total_size();
}
@@ -305,7 +308,7 @@ where
// Save to record index
let mut dead_records = Vec::new();
if let Some(v) = self.record_index.insert(rtk, record, |k, v| {
if let Some(v) = self.record_index.insert_with_callback(rtk, record, |k, v| {
dead_records.push((k, v));
}) {
// Shouldn't happen but log it