diff options
| author | Arne Dußin | 2021-02-04 10:17:39 +0100 |
|---|---|---|
| committer | Arne Dußin | 2021-02-04 10:17:39 +0100 |
| commit | f66875f9aec9ea62b7e97aee1de42f49855d9f68 (patch) | |
| tree | 72989177132edd5fe1d303c241144db7f8b4a769 /src/client_main.rs | |
| parent | 6756f3fb0f5c61b91ee0f62b3066e1a95edd6e79 (diff) | |
| download | graf_karto-f66875f9aec9ea62b7e97aee1de42f49855d9f68.tar.gz graf_karto-f66875f9aec9ea62b7e97aee1de42f49855d9f68.zip | |
Client now accepts hostnames, not only IPaddrs
Diffstat (limited to 'src/client_main.rs')
| -rw-r--r-- | src/client_main.rs | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/src/client_main.rs b/src/client_main.rs index e7d1a2d..3e0a436 100644 --- a/src/client_main.rs +++ b/src/client_main.rs @@ -31,7 +31,7 @@ pub mod world; use clap::{App, Arg}; use server::DEFAULT_PORT; -use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}; +use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, ToSocketAddrs}; fn main() { pretty_env_logger::init(); @@ -70,24 +70,6 @@ fn main() { } }; - let server_address = match matches.value_of("connect") { - None => { - // Local server will be started. - if use_ipv4 { - IpAddr::V4(Ipv4Addr::LOCALHOST) - } else { - IpAddr::V6(Ipv6Addr::LOCALHOST) - } - } - Some(addr) => { - if use_ipv4 { - IpAddr::V4(dbg!(addr).parse().expect("Not a valid IPv4 address")) - } else { - IpAddr::V6(dbg!(addr).parse().expect("Not a valid IPv6 address")) - } - } - }; - let server_handle = if !matches.is_present("connect") { Some({ let (server_handle, port) = @@ -99,7 +81,23 @@ fn main() { None }; - client::run(SocketAddr::new(server_address, server_port)); + let server_address = match matches.value_of("connect") { + None => { + // Local server will be started. + if use_ipv4 { + SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), server_port) + } else { + 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."), + }; + + client::run(server_address); if let Some(handle) = server_handle { handle.join().expect("Server thread closed unexpectedly."); |
