Keep results of address lookups
authorMegaBrutal <megabrutal+github@megabrutal.com>
Sat, 18 Feb 2023 14:45:00 +0000 (15:45 +0100)
committerMegaBrutal <megabrutal+github@megabrutal.com>
Sat, 18 Feb 2023 14:45:00 +0000 (15:45 +0100)
src/main.rs

index 3df7603af6f0495b559dd8948dee39d07026bcf2..c62bc7f78f71e3bd830e57ec0260d8d2e4646dca 100644 (file)
@@ -60,18 +60,22 @@ impl From<a2s::errors::Error> for HLQueryError {
 fn main() {
     let client = A2SClient::new().unwrap();
     let addresses = args().skip(1)
-        .flat_map(|arg| arg.to_socket_addrs())
-        .flat_map(|iter_addr| iter_addr.flat_map(|sa| match sa {
-                SocketAddr::V4(sa4) => Some(sa4),
-                _ => None
-            })
-        );
+        .map(|arg| arg.to_socket_addrs())
+        .map(|lookup_result| match lookup_result {
+            Ok(iter_addr) => {
+                Ok(iter_addr.flat_map(|sa| match sa {
+                    SocketAddr::V4(sa4) => Some(sa4),
+                    _ => None
+                }))
+            },
+            Err(e) => Err(e)
+        });
 
     for address in addresses {
 
-        println!("Querying address: {}", address);
+        println!("Querying address: {:?}", address);
 
-        let result = HLQueryResult::new(&client, address);
+        let result = HLQueryResult::new(&client, address.unwrap().next().unwrap());
         println!("{}\n", serde_json::to_string_pretty(&result).unwrap());
 
     }