diff options
| -rw-r--r-- | src/client_main.rs | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/client_main.rs b/src/client_main.rs index 3e0a436..652a3da 100644 --- a/src/client_main.rs +++ b/src/client_main.rs @@ -90,14 +90,26 @@ fn main() { SocketAddr::new(IpAddr::V6(Ipv6Addr::LOCALHOST), server_port) } } - Some(addr) => (addr, server_port) - .to_socket_addrs() - .expect("Not a valid address") - .next() - .expect("Hostname not registered."), + Some(addr) => { + let addrs = (addr, server_port) + .to_socket_addrs() + .expect("Not a valid address"); + let mut addr = None; + for a in addrs { + if use_ipv4 && a.is_ipv4() { + addr = Some(a); + break; + } else if !use_ipv4 { + addr = Some(a); + break; + } + } + + addr.expect("Could not find a valid ip address on that hostname") + } }; - client::run(server_address); + client::run(dbg!(server_address)); if let Some(handle) = server_handle { handle.join().expect("Server thread closed unexpectedly."); |
