diff options
author | bnewbold <bnewbold@robocracy.org> | 2016-06-02 17:18:44 -0400 |
---|---|---|
committer | bnewbold <bnewbold@robocracy.org> | 2016-06-02 17:18:44 -0400 |
commit | 362dbf20d6b990a092bc220d36289144e86aaa6d (patch) | |
tree | 525ca8bb8f7935c3f319cadf3682155b56e01c77 /src/common.rs | |
parent | e6fd66b7a28b51ffb74f2d4fb8617fa8d091e706 (diff) | |
download | ucp-362dbf20d6b990a092bc220d36289144e86aaa6d.tar.gz ucp-362dbf20d6b990a092bc220d36289144e86aaa6d.zip |
start transition to UDT transport
Diffstat (limited to 'src/common.rs')
-rw-r--r-- | src/common.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/common.rs b/src/common.rs index 09f2b5b..175c4b8 100644 --- a/src/common.rs +++ b/src/common.rs @@ -7,6 +7,17 @@ use std::os::unix::fs::PermissionsExt; use std::io; use std::io::{Read, Write, BufRead, BufReader}; use std::process::exit; +use std::net; + +// This function is an ugly hack fall-back. It tries to find public IP address of this machine by +// creating an outdoing connection +pub fn get_local_ip() -> io::Result<net::IpAddr> { + + let dummy = try!(net::TcpListener::bind("0.0.0.0:0")); + let addr = try!(dummy.local_addr()).ip(); + drop(dummy); + Ok(addr) +} pub fn source_files<S: Read + Write>(stream: &mut S, file_path: &str, recursive: bool) { println!("SOURCE FILE: {}", file_path); @@ -68,8 +79,8 @@ fn raw_read_line<S: Read + Write>(stream: &mut S) -> io::Result<String> { } } -// TODO: it would be nice to be able to do BufReader/BufWriter on UtpStream. This would require -// implementations of Read and Write on immutable references to UtpStream (a la TcpStream, File, et +// TODO: it would be nice to be able to do BufReader/BufWriter on stream. This would require +// implementations of Read and Write on immutable references to stream (a la TcpStream, File, et // al) pub fn sink_files<S: Read + Write>(stream: &mut S, file_path: &str, recursive: bool) { println!("SINK FILE: {}", file_path); |