Skip to content

Commit

Permalink
drop listen_to_tunnel_state use listen_to_events
Browse files Browse the repository at this point in the history
cleanup no longer existing api types mapping
  • Loading branch information
doums committed Jan 29, 2025
1 parent 046e4ac commit 64bebc0
Show file tree
Hide file tree
Showing 6 changed files with 88 additions and 232 deletions.
2 changes: 1 addition & 1 deletion nym-vpn-app/src-tauri/src/commands/tunnel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ pub async fn get_tunnel_state(
app: tauri::AppHandle,
grpc: State<'_, GrpcClient>,
) -> Result<TunnelState, BackendError> {
let state = grpc.tunnel_state(&app, false).await?;
let state = grpc.tunnel_state(&app).await?;
Ok(state)
}

Expand Down
92 changes: 1 addition & 91 deletions nym-vpn-app/src-tauri/src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,8 @@ use std::{

use nym_vpn_proto::account_error::AccountErrorType;
use nym_vpn_proto::connect_request_error::ConnectRequestErrorType;
use nym_vpn_proto::connection_status_update::StatusType;
use nym_vpn_proto::set_network_request_error::SetNetworkRequestErrorType;
use nym_vpn_proto::{
error::ErrorType as DError, AccountError, ConnectRequestError, GatewayType,
SetNetworkRequestError,
};
use nym_vpn_proto::{AccountError, ConnectRequestError, GatewayType, SetNetworkRequestError};
use serde::Serialize;
use thiserror::Error;
use tracing::warn;
Expand Down Expand Up @@ -108,16 +104,6 @@ impl From<VpndError> for BackendError {
}
}

impl From<nym_vpn_proto::Error> for BackendError {
fn from(error: nym_vpn_proto::Error) -> Self {
Self {
message: error.message.clone(),
key: error.kind().into(),
data: error.details.into(),
}
}
}

/// Enum of the possible specialized errors emitted by the daemon
/// or the app backend side, to be passed to the UI layer
#[derive(Debug, Serialize, TS, Clone)]
Expand Down Expand Up @@ -212,67 +198,6 @@ pub enum ErrorKey {
MaxRegisteredDevices,
}

impl From<DError> for ErrorKey {
fn from(value: DError) -> Self {
match value {
DError::NoValidCredentials => ErrorKey::CStateNoValidCredential,
DError::Timeout => ErrorKey::CStateTimeout,
DError::MixnetTimeout => ErrorKey::CStateMixnetTimeout,
DError::MixnetStoragePaths => ErrorKey::CStateMixnetStoragePaths,
DError::MixnetDefaultStorage => ErrorKey::CStateMixnetDefaultStorage,
DError::MixnetBuildClient => ErrorKey::CStateMixnetBuildClient,
DError::MixnetConnect => ErrorKey::CStateMixnetConnect,
DError::MixnetEntryGateway => ErrorKey::CStateMixnetEntryGateway,
DError::IprFailedToConnect => ErrorKey::CStateIprFailedToConnect,
DError::GatewayDirectory => ErrorKey::CStateGwDir,
DError::GatewayDirectoryLookupGateways => ErrorKey::CStateGwDirLookupGateways,
DError::GatewayDirectoryLookupGatewayIdentity => ErrorKey::CStateGwDirLookupGatewayId,
DError::GatewayDirectoryLookupRouterAddress => ErrorKey::CStateGwDirLookupRouterAddr,
DError::GatewayDirectoryLookupIp => ErrorKey::CStateGwDirLookupIp,
DError::GatewayDirectoryEntry => ErrorKey::CStateGwDirEntry,
DError::GatewayDirectoryEntryId => ErrorKey::CStateGwDirEntryId,
DError::GatewayDirectoryEntryLocation => ErrorKey::CStateGwDirEntryLocation,
DError::GatewayDirectoryExit => ErrorKey::CStateGwDirExit,
DError::GatewayDirectoryExitLocation => ErrorKey::CStateGwDirExitLocation,
DError::GatewayDirectorySameEntryAndExitGw => ErrorKey::CStateGwDirSameEntryAndExitGw,
DError::OutOfBandwidth => ErrorKey::CStateOutOfBandwidth,
DError::OutOfBandwidthWhenSettingUpTunnel => {
ErrorKey::CStateOutOfBandwidthSettingUpTunnel
}
DError::BringInterfaceUp => ErrorKey::CStateBringInterfaceUp,
DError::FirewallInit => ErrorKey::CStateFirewallInit,
DError::FirewallResetPolicy => ErrorKey::CStateFirewallResetPolicy,
DError::DnsInit => ErrorKey::CStateDnsInit,
DError::DnsSet => ErrorKey::CStateDnsSet,
DError::FindDefaultInterface => ErrorKey::CStateFindDefaultInterface,
DError::Internal => ErrorKey::CSDaemonInternal,
DError::AuthenticatorFailedToConnect => ErrorKey::CSAuthenticatorFailedToConnect,
DError::AuthenticatorConnectTimeout => ErrorKey::CSAuthenticatorConnectTimeout,
DError::AuthenticatorInvalidResponse => ErrorKey::CSAuthenticatorInvalidResponse,
DError::AuthenticatorRegistrationDataVerification => {
ErrorKey::CSAuthenticatorRegistrationDataVerification
}
DError::AuthenticatorEntryGatewaySocketAddr => {
ErrorKey::CSAuthenticatorEntryGatewaySocketAddr
}
DError::AuthenticatorEntryGatewayIpv4 => ErrorKey::CSAuthenticatorEntryGatewayIpv4,
DError::AuthenticatorWrongVersion => ErrorKey::CSAuthenticatorWrongVersion,
DError::AuthenticatorMalformedReply => ErrorKey::CSAuthenticatorMalformedReply,
DError::AuthenticatorAddressNotFound => ErrorKey::CSAuthenticatorAddressNotFound,
DError::AuthenticatorAuthenticationNotPossible => {
ErrorKey::CSAuthenticatorAuthenticationNotPossible
}
DError::AddIpv6Route => ErrorKey::CSAddIpv6Route,
DError::Tun => ErrorKey::CSTun,
DError::Routing => ErrorKey::CSRouting,
DError::WireguardConfig => ErrorKey::CSWireguardConfig,
DError::MixnetConnectionMonitor => ErrorKey::CSMixnetConnectionMonitor,
DError::UnhandledExit => ErrorKey::CSUnhandledExit,
_ => ErrorKey::UnknownError, // `Unspecified` & `Unhandled`
}
}
}

impl From<AccountError> for BackendError {
fn from(error: AccountError) -> Self {
let data = error.details.clone().into();
Expand Down Expand Up @@ -342,21 +267,6 @@ impl From<ConnectRequestError> for BackendError {
}
}

impl From<StatusType> for ErrorKey {
fn from(value: StatusType) -> Self {
match value {
StatusType::EntryGatewayNotRoutingMixnetMessages => ErrorKey::EntryGatewayNotRouting,
StatusType::ExitRouterNotRespondingToIpv4Ping => ErrorKey::ExitRouterPingIpv4,
StatusType::ExitRouterNotRespondingToIpv6Ping => ErrorKey::ExitRouterPingIpv6,
StatusType::ExitRouterNotRoutingIpv4Traffic => ErrorKey::ExitRouterNotRoutingIpv4,
StatusType::ExitRouterNotRoutingIpv6Traffic => ErrorKey::ExitRouterNotRoutingIpv6,
StatusType::NoBandwidth => ErrorKey::UserNoBandwidth,
StatusType::WgTunnelError => ErrorKey::WgTunnelError,
_ => ErrorKey::UnknownError, // & `Unspecified`
}
}
}

impl From<GatewayType> for ErrorKey {
fn from(value: GatewayType) -> Self {
match value {
Expand Down
64 changes: 0 additions & 64 deletions nym-vpn-app/src-tauri/src/events.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
use nym_vpn_proto::connection_status_update::StatusType;
use nym_vpn_proto::ConnectionStatusUpdate;
use serde::Serialize;
use std::collections::HashMap;
use tauri::Emitter;
Expand Down Expand Up @@ -126,65 +124,3 @@ pub struct StatusUpdatePayload {
data: Option<HashMap<String, String>>,
error: Option<BackendError>,
}

fn status_update_to_error(update: ConnectionStatusUpdate) -> Option<BackendError> {
let status = update.kind();
let error = BackendError::with_optional_data(
&update.message,
ErrorKey::from(status),
Some(update.details),
);
match &status {
StatusType::EntryGatewayNotRoutingMixnetMessages => Some(error),
StatusType::ExitRouterNotRespondingToIpv4Ping => Some(error),
StatusType::ExitRouterNotRoutingIpv4Traffic => Some(error),
StatusType::ExitRouterNotRespondingToIpv6Ping => Some(error),
StatusType::ExitRouterNotRoutingIpv6Traffic => Some(error),
StatusType::NoBandwidth => Some(error),
StatusType::WgTunnelError => Some(error),
_ => None,
}
}

impl From<ConnectionStatusUpdate> for StatusUpdatePayload {
fn from(update: ConnectionStatusUpdate) -> Self {
Self {
status: match update.kind() {
StatusType::EntryGatewayConnectionEstablished => {
StatusUpdate::EntryGatewayConnectionEstablished
}
StatusType::ExitRouterConnectionEstablished => {
StatusUpdate::ExitRouterConnectionEstablished
}
StatusType::TunnelEndToEndConnectionEstablished => {
StatusUpdate::TunnelEndToEndConnectionEstablished
}
StatusType::EntryGatewayNotRoutingMixnetMessages => {
StatusUpdate::EntryGatewayNotRoutingMixnetMessages
}
StatusType::ExitRouterNotRespondingToIpv4Ping => {
StatusUpdate::ExitRouterNotRespondingToIpv4Ping
}
StatusType::ExitRouterNotRespondingToIpv6Ping => {
StatusUpdate::ExitRouterNotRespondingToIpv6Ping
}
StatusType::ExitRouterNotRoutingIpv4Traffic => {
StatusUpdate::ExitRouterNotRoutingIpv4Traffic
}
StatusType::ExitRouterNotRoutingIpv6Traffic => {
StatusUpdate::ExitRouterNotRoutingIpv6Traffic
}
StatusType::ConnectionOkIpv4 => StatusUpdate::ConnectionOkIpv4,
StatusType::ConnectionOkIpv6 => StatusUpdate::ConnectionOkIpv6,
StatusType::RemainingBandwidth => StatusUpdate::RemainingBandwidth,
StatusType::NoBandwidth => StatusUpdate::NoBandwidth,
StatusType::WgTunnelError => StatusUpdate::WgTunnelError,
StatusType::MixnetBandwidthRate => StatusUpdate::MixnetBandwidthRate,
_ => StatusUpdate::Unknown, // Unspecified & Unknown
},
message: update.message.clone(),
data: Some(update.details.clone()),
error: status_update_to_error(update),
}
}
}
Loading

0 comments on commit 64bebc0

Please sign in to comment.