blob: e91ad0d9fac4eb4027df6400636ef70a360af900 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
use std::{env::args, net::SocketAddr};
use tunnel_obfuscation::{Obfuscator, Settings, create_obfuscator, udp2tcp};
#[tokio::main]
async fn main() {
if args().len() != 2 {
println!("Missing arguments");
}
let obfuscator = instantiate_requested(&args().next_back().unwrap()).await;
println!("endpoint() returns {:?}", obfuscator.endpoint());
if let Err(err) = obfuscator.run().await {
println!("obfuscator.run() failed: {err:?}");
}
}
async fn instantiate_requested(obfuscator_type: &str) -> Box<dyn Obfuscator> {
match obfuscator_type {
"udp2tcp" => {
let settings = udp2tcp::Settings {
peer: SocketAddr::new("127.0.0.1".parse().unwrap(), 3030),
#[cfg(target_os = "linux")]
fwmark: Some(1337),
};
create_obfuscator(&Settings::Udp2Tcp(settings))
.await
.expect("Creating obfuscator failed")
}
_ => {
unimplemented!()
}
}
}
|