aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArne Dußin2021-02-04 10:17:39 +0100
committerArne Dußin2021-02-04 10:17:39 +0100
commitf66875f9aec9ea62b7e97aee1de42f49855d9f68 (patch)
tree72989177132edd5fe1d303c241144db7f8b4a769
parent6756f3fb0f5c61b91ee0f62b3066e1a95edd6e79 (diff)
downloadgraf_karto-f66875f9aec9ea62b7e97aee1de42f49855d9f68.tar.gz
graf_karto-f66875f9aec9ea62b7e97aee1de42f49855d9f68.zip
Client now accepts hostnames, not only IPaddrs
-rw-r--r--src/client_main.rs38
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.");