From 362dbf20d6b990a092bc220d36289144e86aaa6d Mon Sep 17 00:00:00 2001 From: bnewbold Date: Thu, 2 Jun 2016 17:18:44 -0400 Subject: start transition to UDT transport --- src/common.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/common.rs') 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 { + + 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(stream: &mut S, file_path: &str, recursive: bool) { println!("SOURCE FILE: {}", file_path); @@ -68,8 +79,8 @@ fn raw_read_line(stream: &mut S) -> io::Result { } } -// 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(stream: &mut S, file_path: &str, recursive: bool) { println!("SINK FILE: {}", file_path); -- cgit v1.2.3