|
|
|
@ -4,7 +4,7 @@ use crate::{ |
|
|
|
socks::SocksProxyManager, |
|
|
|
tun2proxy::{ConnectionManager, TunToProxy}, |
|
|
|
}; |
|
|
|
use socks5_impl::protocol::{UserKey, Version}; |
|
|
|
use socks5_impl::protocol::UserKey; |
|
|
|
use std::{ |
|
|
|
net::{SocketAddr, ToSocketAddrs}, |
|
|
|
rc::Rc, |
|
|
|
@ -145,10 +145,10 @@ pub fn tun_to_proxy<'a>( |
|
|
|
let mut ttp = TunToProxy::new(interface, options)?; |
|
|
|
let credentials = proxy.credentials.clone(); |
|
|
|
let server = proxy.addr; |
|
|
|
#[rustfmt::skip] |
|
|
|
use socks5_impl::protocol::Version::{V4, V5}; |
|
|
|
let mgr = match proxy.proxy_type { |
|
|
|
ProxyType::Socks4 => Rc::new(SocksProxyManager::new(server, Version::V4, credentials)) as Rc<dyn ConnectionManager>, |
|
|
|
ProxyType::Socks5 => Rc::new(SocksProxyManager::new(server, Version::V5, credentials)) as Rc<dyn ConnectionManager>, |
|
|
|
ProxyType::Socks4 => Rc::new(SocksProxyManager::new(server, V4, credentials)) as Rc<dyn ConnectionManager>, |
|
|
|
ProxyType::Socks5 => Rc::new(SocksProxyManager::new(server, V5, credentials)) as Rc<dyn ConnectionManager>, |
|
|
|
ProxyType::Http => Rc::new(HttpManager::new(server, credentials)) as Rc<dyn ConnectionManager>, |
|
|
|
}; |
|
|
|
ttp.set_connection_manager(Some(mgr)); |
|
|
|
|