pub trait ClientExitProtocol {
    // Required methods
    fn validate<'life0, 'async_trait>(
        &'life0 self,
        token: BlindToken
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn telemetry_heartbeat<'life0, 'async_trait>(
        &'life0 self,
        tele: ClientTelemetry
    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn get_vpn_ipv4<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Option<Ipv4Addr>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

The nanorpc_derive trait describing the client/exit protocol that runs over sosistab2.

Required Methods§

source

fn validate<'life0, 'async_trait>( &'life0 self, token: BlindToken ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Authenticates the user. Before this method is called, no user traffic can pass. Idempotent.

source

fn telemetry_heartbeat<'life0, 'async_trait>( &'life0 self, tele: ClientTelemetry ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Uploads a telemetry sample. Also used as a keepalive “heartbeat”.

source

fn get_vpn_ipv4<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Option<Ipv4Addr>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Obtain a VPN IPv4 address.

Implementors§