diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2017-09-19 22:58:10 +0200 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2017-09-19 23:40:26 +0200 |
| commit | d02f31e07a587845e110f7d935eb2f402ef2c640 (patch) | |
| tree | a278d1a32d1cb12f72c3698d533e804fb9fe0121 /socket-relay | |
| parent | ed0d1101afb852ceb64105fd4aa22200b05a5ceb (diff) | |
| download | mullvadvpn-d02f31e07a587845e110f7d935eb2f402ef2c640.tar.xz mullvadvpn-d02f31e07a587845e110f7d935eb2f402ef2c640.zip | |
Make cli tool use arguments for addresses
Diffstat (limited to 'socket-relay')
| -rw-r--r-- | socket-relay/src/main.rs | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/socket-relay/src/main.rs b/socket-relay/src/main.rs index 7eb6fd50db..851904b499 100644 --- a/socket-relay/src/main.rs +++ b/socket-relay/src/main.rs @@ -5,7 +5,7 @@ extern crate tokio_core; extern crate socket_relay; -use std::net::{IpAddr, Ipv4Addr, SocketAddr}; +use std::env; use std::thread; use std::time::Duration; @@ -17,21 +17,26 @@ quick_main!(run); fn run() -> Result<()> { env_logger::init().chain_err(|| "Failed to init logging")?; - let listen_ip = IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)); - let listen_port = 53; - let listen_addr = SocketAddr::new(listen_ip, listen_port); - - let forward_bind_ip = IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)); - - let forward_ip = IpAddr::V4(Ipv4Addr::new(8, 8, 8, 8)); - let forward_port = 53; - let forward_addr = SocketAddr::new(forward_ip, forward_port); - + let listen_addr = env::args() + .nth(1) + .expect("Listen address as first argument") + .parse() + .expect("Invalid listen address format"); + let destination = env::args() + .nth(2) + .expect("Relay destination address as second argument") + .parse() + .expect("Invalid destination address format"); + let forward_bind_ip = env::args() + .nth(3) + .unwrap_or(String::from("0.0.0.0")) + .parse() + .unwrap(); let mut core = Core::new().chain_err(|| "Unable to create Tokio core")?; let handle = core.handle(); - let relay = socket_relay::udp::Relay::new(listen_addr, forward_bind_ip, forward_addr, handle) + let relay = socket_relay::udp::Relay::new(listen_addr, forward_bind_ip, destination, handle) .chain_err(|| "Unable to init forwarder")?; println!("Forwarder listening on {}", relay.listen_addr()); |
