From df013c754303aa9d36c4a6dcbf4a8c6fcb312fd5 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Fri, 12 Jul 2019 20:33:10 -0400 Subject: [PATCH] Split out binary in prep for multiple binaries --- src/{main.rs => bin/wireguard-proxyd.rs} | 31 ++---------------------- src/lib.rs | 28 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 29 deletions(-) rename src/{main.rs => bin/wireguard-proxyd.rs} (87%) create mode 100644 src/lib.rs diff --git a/src/main.rs b/src/bin/wireguard-proxyd.rs similarity index 87% rename from src/main.rs rename to src/bin/wireguard-proxyd.rs index 0ef626c..783acf9 100644 --- a/src/main.rs +++ b/src/bin/wireguard-proxyd.rs @@ -3,9 +3,9 @@ use std::net::{TcpListener, TcpStream, UdpSocket}; use std::time::Duration; use std::env; -use std::str::FromStr; use std::sync::Arc; use std::thread; +use wireguard_proxy::Args; struct Server { udp_target: String, @@ -15,8 +15,6 @@ struct Server { socket_timeout: Option, } -unsafe impl Send for Server {} - impl Server { fn new( udp_target: String, @@ -93,38 +91,13 @@ impl Server { } } -struct Args<'a> { - args: &'a Vec, -} - -impl<'a> Args<'a> { - fn new(args: &'a Vec) -> Args { - Args { args } - } - fn get_str(&self, index: usize, def: &'a str) -> &'a str { - match self.args.get(index) { - Some(ret) => ret, - None => def, - } - } - fn get(&self, index: usize, def: T) -> T { - match self.args.get(index) { - Some(ret) => match ret.parse::() { - Ok(ret) => ret, - Err(_) => def, // or panic - }, - None => def, - } - } -} - fn main() { let raw_args = env::args().collect(); let args = Args::new(&raw_args); if args.get_str(1, "").contains("-h") { println!( "usage: {} [-h] [host, 127.0.0.1:5555] [udp_target, 127.0.0.1:51820] [udp_bind_host_range, 127.0.0.1:30000-40000] [socket_timeout, 0]", - args.get_str(0, "curl_bash") + args.get_str(0, "wireguard-proxyd") ); return; } diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..8c4ba35 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,28 @@ +use std::str::FromStr; + +pub struct Args<'a> { + args: &'a Vec, +} + +impl<'a> Args<'a> { + pub fn new(args: &'a Vec) -> Args { + Args { args } + } + pub fn get_str(&self, index: usize, def: &'a str) -> &'a str { + match self.args.get(index) { + Some(ret) => ret, + None => def, + } + } + pub fn get(&self, index: usize, def: T) -> T { + match self.args.get(index) { + Some(ret) => match ret.parse::() { + Ok(ret) => ret, + Err(_) => def, // or panic + }, + None => def, + } + } +} + +