Browse Source

separate to lib and exe

pull/9/head
ssrlive 3 years ago
committed by B. Blechschmidt
parent
commit
4ce2bdf0ba
  1. 26
      src/lib.rs
  2. 15
      src/main.rs

26
src/lib.rs

@ -0,0 +1,26 @@
use crate::{http::HttpManager, socks5::Socks5Manager, tun2proxy::TunToProxy};
use std::net::SocketAddr;
pub mod http;
pub mod socks5;
pub mod tun2proxy;
pub mod virtdevice;
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub enum ProxyType {
Socks5,
Http,
}
pub fn main_entry(tun: &str, addr: SocketAddr, proxy_type: ProxyType) {
let mut ttp = TunToProxy::new(tun);
match proxy_type {
ProxyType::Socks5 => {
ttp.add_connection_manager(Box::new(Socks5Manager::new(addr)));
}
ProxyType::Http => {
ttp.add_connection_manager(Box::new(HttpManager::new(addr)));
}
}
ttp.run();
}

15
src/main.rs

@ -1,13 +1,6 @@
mod http; use tun2proxy::{ProxyType, main_entry};
mod socks5;
mod tun2proxy;
mod virtdevice;
use crate::http::HttpManager;
use crate::tun2proxy::TunToProxy;
use clap::{Parser, ValueEnum}; use clap::{Parser, ValueEnum};
use env_logger::Env; use env_logger::Env;
use socks5::*;
use std::net::SocketAddr; use std::net::SocketAddr;
/// Tunnel interface to proxy /// Tunnel interface to proxy
@ -39,16 +32,14 @@ fn main() {
env_logger::Builder::from_env(Env::default().default_filter_or("info")).init(); env_logger::Builder::from_env(Env::default().default_filter_or("info")).init();
let args = Args::parse(); let args = Args::parse();
let mut ttp = TunToProxy::new(&args.tun);
match args.proxy_type { match args.proxy_type {
ArgProxyType::Socks5 => { ArgProxyType::Socks5 => {
log::info!("SOCKS5 server: {}", args.addr); log::info!("SOCKS5 server: {}", args.addr);
ttp.add_connection_manager(Box::new(Socks5Manager::new(args.addr))); main_entry(&args.tun, args.addr, ProxyType::Socks5);
} }
ArgProxyType::Http => { ArgProxyType::Http => {
log::info!("HTTP server: {}", args.addr); log::info!("HTTP server: {}", args.addr);
ttp.add_connection_manager(Box::new(HttpManager::new(args.addr))); main_entry(&args.tun, args.addr, ProxyType::Http);
} }
} }
ttp.run();
} }

Loading…
Cancel
Save