use std::fmt;
use std::net::SocketAddr;
use std::sync::{Arc, Mutex};
use secrecy::SecretString;
#[derive(Clone, Debug)]
pub struct ServerAppData {
pub connection_auth_psk: SecretString,
pub default_tcp_listener: SocketAddr,
pub clients_additional_listeners: bool,
}
impl ServerAppData {
pub fn new(connection_auth_psk: SecretString, default_tcp_listener: SocketAddr) -> Self {
ServerAppData {
connection_auth_psk,
default_tcp_listener,
clients_additional_listeners: false,
}
}
}
impl fmt::Display for ServerAppData {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "ServerAppData {{ connection_auth_psk: [REDACTED] }}",)
}
}
#[derive(Clone, Debug)]
pub struct ClientAppData {
pub connection: Arc<Mutex<Option<quinn::Connection>>>,
pub connection_auth_psk: SecretString,
pub forward_destination: SocketAddr,
}
impl ClientAppData {
pub fn new(connection_auth_psk: SecretString, forward_destination: SocketAddr) -> Self {
ClientAppData {
connection: Arc::new(Mutex::new(None)),
connection_auth_psk,
forward_destination,
}
}
}
impl fmt::Display for ClientAppData {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "ClientAppData {{ connection: {:?}, connection_auth_psk: [REDACTED], destination: {} }}", self.connection, self.forward_destination)
}
}