1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
use anyhow::Result; use async_trait::async_trait; use tokio::net::TcpStream; #[async_trait] pub trait SocksHandler { async fn accept_request( &self, source: &mut TcpStream, ) -> Result<()>; async fn refuse_request( &self, source: &mut TcpStream, ) -> Result<()>; async fn setup( &self, source: &mut TcpStream, ) -> Result<TcpStream>; }