Remove old free credential handle (#5864)
* Set cached storage counters to 0 (#5812) * Set cached storage counters to 0 * u64 to i64 log possible error * Check addition too Debug commit Remove more data from wg storage peer Put actual ticket type in storage Simplify add peer Finish rebase Pass defguard Peer Cache less data for consumption GatewayStorage traits Wg API trait Mock test structures Unit test for peer controller EcashManager trait Init test of Authenticator Remove peer test * Fix windows different API * Use make_bincode_serializer like in other places * Add log_slow_statements to gateway storage * Use correct LevelFilter * Fix clippy * More win fix * Win clippy * Use two error variants more * Use only one Arc<RwLock<T>> instead of many more * Remove commented test * Specific trait import
This commit is contained in:
committed by
GitHub
parent
8e44f9f07f
commit
b975d08342
@@ -24,6 +24,8 @@ use nym_gateway_requests::{
|
||||
SimpleGatewayRequestsError,
|
||||
};
|
||||
use nym_gateway_storage::error::GatewayStorageError;
|
||||
use nym_gateway_storage::traits::BandwidthGatewayStorage;
|
||||
use nym_gateway_storage::traits::SharedKeyGatewayStorage;
|
||||
use nym_node_metrics::events::MetricsEvent;
|
||||
use nym_sphinx::forwarding::packet::MixPacket;
|
||||
use nym_statistics_common::{gateways::GatewaySessionEvent, types::SessionType};
|
||||
@@ -190,7 +192,7 @@ impl<R, S> AuthenticatedHandler<R, S> {
|
||||
|
||||
let handler = AuthenticatedHandler {
|
||||
bandwidth_storage_manager: BandwidthStorageManager::new(
|
||||
fresh.shared_state.storage.clone(),
|
||||
Box::new(fresh.shared_state.storage.clone()),
|
||||
ClientBandwidth::new(bandwidth.into()),
|
||||
client.id,
|
||||
fresh.shared_state.cfg.bandwidth,
|
||||
|
||||
@@ -27,6 +27,9 @@ use nym_gateway_requests::{
|
||||
INITIAL_PROTOCOL_VERSION,
|
||||
};
|
||||
use nym_gateway_storage::error::GatewayStorageError;
|
||||
use nym_gateway_storage::traits::BandwidthGatewayStorage;
|
||||
use nym_gateway_storage::traits::InboxGatewayStorage;
|
||||
use nym_gateway_storage::traits::SharedKeyGatewayStorage;
|
||||
use nym_node_metrics::events::MetricsEvent;
|
||||
use nym_sphinx::DestinationAddressBytes;
|
||||
use nym_task::TaskClient;
|
||||
|
||||
+14
-9
@@ -13,7 +13,6 @@ use nym_credential_verification::ecash::{
|
||||
credential_sender::CredentialHandlerConfig, EcashManager,
|
||||
};
|
||||
use nym_crypto::asymmetric::ed25519;
|
||||
use nym_gateway_storage::models::WireguardPeer;
|
||||
use nym_ip_packet_router::IpPacketRouter;
|
||||
use nym_mixnet_client::forwarder::MixForwardingSender;
|
||||
use nym_network_defaults::NymNetworkDetails;
|
||||
@@ -38,7 +37,11 @@ mod stale_data_cleaner;
|
||||
use crate::node::stale_data_cleaner::StaleMessagesCleaner;
|
||||
pub use client_handling::active_clients::ActiveClientsStore;
|
||||
pub use nym_gateway_stats_storage::PersistentStatsStorage;
|
||||
pub use nym_gateway_storage::{error::GatewayStorageError, GatewayStorage};
|
||||
pub use nym_gateway_storage::{
|
||||
error::GatewayStorageError,
|
||||
traits::{BandwidthGatewayStorage, InboxGatewayStorage},
|
||||
GatewayStorage,
|
||||
};
|
||||
use nym_node_metrics::NymNodeMetrics;
|
||||
pub use nym_sdk::{NymApiTopologyProvider, NymApiTopologyProviderConfig, UserAgent};
|
||||
|
||||
@@ -93,7 +96,7 @@ pub struct GatewayTasksBuilder {
|
||||
// populated and cached as necessary
|
||||
ecash_manager: Option<Arc<EcashManager>>,
|
||||
|
||||
wireguard_peers: Option<Vec<WireguardPeer>>,
|
||||
wireguard_peers: Option<Vec<defguard_wireguard_rs::host::Peer>>,
|
||||
|
||||
wireguard_networks: Option<Vec<IpAddr>>,
|
||||
}
|
||||
@@ -357,12 +360,12 @@ impl GatewayTasksBuilder {
|
||||
|
||||
async fn build_wireguard_peers_and_networks(
|
||||
&self,
|
||||
) -> Result<(Vec<WireguardPeer>, Vec<IpAddr>), GatewayError> {
|
||||
) -> Result<(Vec<defguard_wireguard_rs::host::Peer>, Vec<IpAddr>), GatewayError> {
|
||||
let mut used_private_network_ips = vec![];
|
||||
let mut all_peers = vec![];
|
||||
for wireguard_peer in self.storage.get_all_wireguard_peers().await?.into_iter() {
|
||||
let mut peer = defguard_wireguard_rs::host::Peer::try_from(wireguard_peer.clone())?;
|
||||
let Some(peer) = peer.allowed_ips.pop() else {
|
||||
let Some(allowed_ip) = peer.allowed_ips.pop() else {
|
||||
let peer_identity = &peer.public_key;
|
||||
warn!("Peer {peer_identity} has empty allowed ips. It will be removed",);
|
||||
self.storage
|
||||
@@ -370,8 +373,8 @@ impl GatewayTasksBuilder {
|
||||
.await?;
|
||||
continue;
|
||||
};
|
||||
used_private_network_ips.push(peer.ip);
|
||||
all_peers.push(wireguard_peer);
|
||||
used_private_network_ips.push(allowed_ip.ip);
|
||||
all_peers.push(peer);
|
||||
}
|
||||
|
||||
Ok((all_peers, used_private_network_ips))
|
||||
@@ -379,7 +382,9 @@ impl GatewayTasksBuilder {
|
||||
|
||||
// only used under linux
|
||||
#[allow(dead_code)]
|
||||
async fn get_wireguard_peers(&mut self) -> Result<Vec<WireguardPeer>, GatewayError> {
|
||||
async fn get_wireguard_peers(
|
||||
&mut self,
|
||||
) -> Result<Vec<defguard_wireguard_rs::host::Peer>, GatewayError> {
|
||||
if let Some(cached) = self.wireguard_peers.take() {
|
||||
return Ok(cached);
|
||||
}
|
||||
@@ -432,8 +437,8 @@ impl GatewayTasksBuilder {
|
||||
opts.config.clone(),
|
||||
wireguard_data.inner.clone(),
|
||||
used_private_network_ips,
|
||||
ecash_manager,
|
||||
)
|
||||
.with_ecash_verifier(ecash_manager)
|
||||
.with_custom_gateway_transceiver(transceiver)
|
||||
.with_shutdown(self.shutdown.fork("authenticator_sp"))
|
||||
.with_wait_for_gateway(true)
|
||||
|
||||
Reference in New Issue
Block a user