From 3f654e0dfd96b0185b984f2afafd9cf78f7b6eba Mon Sep 17 00:00:00 2001 From: Tom <25043847+Douile@users.noreply.github.com> Date: Mon, 29 May 2023 08:10:21 +0000 Subject: [PATCH] [Protocol] Enable the use of Ipv6 addresses (#41) Replace usages of Ipv4Addr with IpAddr which allows the use of either Ipv4 or Ipv6. This patch essentially consists of running: "sed -i 's/Ipv4Addr/IpAddr/g' src/**/*.rs examples/*" and fixing the errors. --- examples/master_querant.rs | 4 ++-- src/games/aliens.rs | 4 ++-- src/games/aoc.rs | 4 ++-- src/games/arma2oa.rs | 4 ++-- src/games/ase.rs | 4 ++-- src/games/asrd.rs | 4 ++-- src/games/avorion.rs | 4 ++-- src/games/bat1944.rs | 4 ++-- src/games/bb2.rs | 4 ++-- src/games/bf1942.rs | 4 ++-- src/games/bm.rs | 4 ++-- src/games/bo.rs | 4 ++-- src/games/ccure.rs | 4 ++-- src/games/cosu.rs | 4 ++-- src/games/cs.rs | 4 ++-- src/games/cscz.rs | 4 ++-- src/games/csgo.rs | 4 ++-- src/games/css.rs | 4 ++-- src/games/cw.rs | 4 ++-- src/games/dod.rs | 4 ++-- src/games/dods.rs | 4 ++-- src/games/doi.rs | 4 ++-- src/games/dst.rs | 4 ++-- src/games/ffow.rs | 6 +++--- src/games/gm.rs | 4 ++-- src/games/hl2dm.rs | 4 ++-- src/games/hldms.rs | 4 ++-- src/games/ins.rs | 4 ++-- src/games/insmic.rs | 4 ++-- src/games/inss.rs | 4 ++-- src/games/l4d.rs | 4 ++-- src/games/l4d2.rs | 4 ++-- src/games/mc.rs | 12 +++++------ src/games/ohd.rs | 4 ++-- src/games/onset.rs | 4 ++-- src/games/pz.rs | 4 ++-- src/games/ror2.rs | 4 ++-- src/games/rust.rs | 4 ++-- src/games/sc.rs | 4 ++-- src/games/sdtd.rs | 4 ++-- src/games/ss.rs | 4 ++-- src/games/tf.rs | 4 ++-- src/games/tf2.rs | 4 ++-- src/games/tfc.rs | 4 ++-- src/games/ts.rs | 4 ++-- src/games/unturned.rs | 4 ++-- src/games/ut.rs | 4 ++-- src/games/vr.rs | 4 ++-- .../gamespy/protocols/one/protocol.rs | 8 ++++---- .../gamespy/protocols/three/protocol.rs | 10 +++++----- src/protocols/minecraft/protocol/bedrock.rs | 6 +++--- src/protocols/minecraft/protocol/java.rs | 6 +++--- .../minecraft/protocol/legacy_bv1_8.rs | 6 +++--- .../minecraft/protocol/legacy_v1_4.rs | 6 +++--- .../minecraft/protocol/legacy_v1_6.rs | 6 +++--- src/protocols/minecraft/protocol/mod.rs | 12 +++++------ src/protocols/valve/protocol.rs | 8 ++++---- src/services/valve_master_server/service.rs | 20 +++++++++---------- src/socket.rs | 19 ++++++------------ src/utils.rs | 8 ++++---- 60 files changed, 155 insertions(+), 162 deletions(-) diff --git a/examples/master_querant.rs b/examples/master_querant.rs index 51e96b5..f15f0b3 100644 --- a/examples/master_querant.rs +++ b/examples/master_querant.rs @@ -4,7 +4,7 @@ use gamedig::protocols::valve; use gamedig::protocols::valve::Engine; use gamedig::{aliens, aoc, arma2oa, ase, asrd, avorion, bat1944, bb2, bf1942, bm, bo, ccure, cosu, cs, cscz, csgo, css, dod, dods, doi, dst, ffow, gm, hl2dm, hldms, ins, insmic, inss, l4d, l4d2, mc, ohd, onset, pz, ror2, rust, sc, sdtd, ss, tf, tf2, tfc, ts, unturned, ut, vr, GDResult, cw}; use std::env; -use std::net::Ipv4Addr; +use std::net::IpAddr; fn main() -> GDResult<()> { let args: Vec = env::args().collect(); @@ -20,7 +20,7 @@ fn main() -> GDResult<()> { return Ok(()); } - let ip = &args[2].as_str().parse::().unwrap(); + let ip = &args[2].as_str().parse::().unwrap(); let port = match args.len() == 4 { false => { if args[1].starts_with("_") { diff --git a/src/games/aliens.rs b/src/games/aliens.rs index 6a3ce2b..38b8771 100644 --- a/src/games/aliens.rs +++ b/src/games/aliens.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/aoc.rs b/src/games/aoc.rs index 7a451a9..6324de6 100644 --- a/src/games/aoc.rs +++ b/src/games/aoc.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/arma2oa.rs b/src/games/arma2oa.rs index 92863e0..5fc692b 100644 --- a/src/games/arma2oa.rs +++ b/src/games/arma2oa.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(2304), diff --git a/src/games/ase.rs b/src/games/ase.rs index 55edf6d..41734f2 100644 --- a/src/games/ase.rs +++ b/src/games/ase.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/asrd.rs b/src/games/asrd.rs index 38fa573..a911bdd 100644 --- a/src/games/asrd.rs +++ b/src/games/asrd.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/avorion.rs b/src/games/avorion.rs index e9236b6..5defd51 100644 --- a/src/games/avorion.rs +++ b/src/games/avorion.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27020), diff --git a/src/games/bat1944.rs b/src/games/bat1944.rs index f211d75..fd02d4a 100644 --- a/src/games/bat1944.rs +++ b/src/games/bat1944.rs @@ -1,11 +1,11 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDError::TypeParse, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let mut valve_response = valve::query( address, port.unwrap_or(7780), diff --git a/src/games/bb2.rs b/src/games/bb2.rs index b4b18e4..8b417f0 100644 --- a/src/games/bb2.rs +++ b/src/games/bb2.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/bf1942.rs b/src/games/bf1942.rs index c0a934b..1eacd83 100644 --- a/src/games/bf1942.rs +++ b/src/games/bf1942.rs @@ -1,8 +1,8 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::protocols::gamespy; use crate::protocols::gamespy::one::Response; use crate::GDResult; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { gamespy::one::query(address, port.unwrap_or(23000), None) } diff --git a/src/games/bm.rs b/src/games/bm.rs index c31e8e9..2585a41 100644 --- a/src/games/bm.rs +++ b/src/games/bm.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/bo.rs b/src/games/bo.rs index 4136720..a35e02e 100644 --- a/src/games/bo.rs +++ b/src/games/bo.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27016), diff --git a/src/games/ccure.rs b/src/games/ccure.rs index 0acdc81..9d06f4f 100644 --- a/src/games/ccure.rs +++ b/src/games/ccure.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/cosu.rs b/src/games/cosu.rs index 2018a90..cecd25a 100644 --- a/src/games/cosu.rs +++ b/src/games/cosu.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27004), diff --git a/src/games/cs.rs b/src/games/cs.rs index a7cb8a0..e13ef13 100644 --- a/src/games/cs.rs +++ b/src/games/cs.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/cscz.rs b/src/games/cscz.rs index 82feb30..61a7075 100644 --- a/src/games/cscz.rs +++ b/src/games/cscz.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/csgo.rs b/src/games/csgo.rs index 11b2df8..d92eb7c 100644 --- a/src/games/csgo.rs +++ b/src/games/csgo.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/css.rs b/src/games/css.rs index 1d43591..d93ee37 100644 --- a/src/games/css.rs +++ b/src/games/css.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/cw.rs b/src/games/cw.rs index 74a45e9..4ce41f9 100644 --- a/src/games/cw.rs +++ b/src/games/cw.rs @@ -1,8 +1,8 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::protocols::gamespy; use crate::protocols::gamespy::three::Response; use crate::GDResult; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { gamespy::three::query(address, port.unwrap_or(64100), None) } diff --git a/src/games/dod.rs b/src/games/dod.rs index b106ad9..02273b4 100644 --- a/src/games/dod.rs +++ b/src/games/dod.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/dods.rs b/src/games/dods.rs index d585815..cba01ba 100644 --- a/src/games/dods.rs +++ b/src/games/dods.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/doi.rs b/src/games/doi.rs index fc85cee..4d5e4ed 100644 --- a/src/games/doi.rs +++ b/src/games/doi.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/dst.rs b/src/games/dst.rs index 2951173..7833477 100644 --- a/src/games/dst.rs +++ b/src/games/dst.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27016), diff --git a/src/games/ffow.rs b/src/games/ffow.rs index a5face9..d0c51b0 100644 --- a/src/games/ffow.rs +++ b/src/games/ffow.rs @@ -1,4 +1,4 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::protocols::types::TimeoutSettings; use crate::protocols::valve::{Engine, Environment, Server, ValveProtocol}; use crate::GDResult; @@ -43,11 +43,11 @@ pub struct Response { pub time_left: u16, } -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { query_with_timeout(address, port, TimeoutSettings::default()) } -pub fn query_with_timeout(address: &Ipv4Addr, port: Option, timeout_settings: TimeoutSettings) -> GDResult { +pub fn query_with_timeout(address: &IpAddr, port: Option, timeout_settings: TimeoutSettings) -> GDResult { let mut client = ValveProtocol::new(address, port.unwrap_or(5478), Some(timeout_settings))?; let mut buffer = client.get_request_data( &Engine::GoldSrc(true), diff --git a/src/games/gm.rs b/src/games/gm.rs index 429986a..78ce488 100644 --- a/src/games/gm.rs +++ b/src/games/gm.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27016), diff --git a/src/games/hl2dm.rs b/src/games/hl2dm.rs index 0e0bddb..7608b62 100644 --- a/src/games/hl2dm.rs +++ b/src/games/hl2dm.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/hldms.rs b/src/games/hldms.rs index 77754e7..776f0c4 100644 --- a/src/games/hldms.rs +++ b/src/games/hldms.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/ins.rs b/src/games/ins.rs index 1a99041..be76fba 100644 --- a/src/games/ins.rs +++ b/src/games/ins.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/insmic.rs b/src/games/insmic.rs index a548450..d6f6edf 100644 --- a/src/games/insmic.rs +++ b/src/games/insmic.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/inss.rs b/src/games/inss.rs index f008adb..a39e1d6 100644 --- a/src/games/inss.rs +++ b/src/games/inss.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27131), diff --git a/src/games/l4d.rs b/src/games/l4d.rs index 1b8d761..b0a45f8 100644 --- a/src/games/l4d.rs +++ b/src/games/l4d.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/l4d2.rs b/src/games/l4d2.rs index bbfdc5d..67934f3 100644 --- a/src/games/l4d2.rs +++ b/src/games/l4d2.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/mc.rs b/src/games/mc.rs index 35d330a..9a22b76 100644 --- a/src/games/mc.rs +++ b/src/games/mc.rs @@ -1,4 +1,4 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::minecraft::{self, BedrockResponse, JavaResponse, LegacyGroup}, GDError, @@ -7,7 +7,7 @@ use crate::{ /// Query with all the protocol variants one by one (Java -> Bedrock -> Legacy /// (1.6 -> 1.4 -> Beta 1.8)). -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { if let Ok(response) = query_java(address, port) { return Ok(response); } @@ -24,22 +24,22 @@ pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { } /// Query a Java Server. -pub fn query_java(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query_java(address: &IpAddr, port: Option) -> GDResult { minecraft::query_java(address, port_or_java_default(port), None) } /// Query a (Java) Legacy Server (1.6 -> 1.4 -> Beta 1.8). -pub fn query_legacy(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query_legacy(address: &IpAddr, port: Option) -> GDResult { minecraft::query_legacy(address, port_or_java_default(port), None) } /// Query a specific (Java) Legacy Server. -pub fn query_legacy_specific(group: LegacyGroup, address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query_legacy_specific(group: LegacyGroup, address: &IpAddr, port: Option) -> GDResult { minecraft::query_legacy_specific(group, address, port_or_java_default(port), None) } /// Query a Bedrock Server. -pub fn query_bedrock(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query_bedrock(address: &IpAddr, port: Option) -> GDResult { minecraft::query_bedrock(address, port_or_bedrock_default(port), None) } diff --git a/src/games/ohd.rs b/src/games/ohd.rs index 271b316..a94f97b 100644 --- a/src/games/ohd.rs +++ b/src/games/ohd.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27005), diff --git a/src/games/onset.rs b/src/games/onset.rs index f29ccd6..d7c652e 100644 --- a/src/games/onset.rs +++ b/src/games/onset.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(7776), diff --git a/src/games/pz.rs b/src/games/pz.rs index 1466c13..8aab755 100644 --- a/src/games/pz.rs +++ b/src/games/pz.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(16261), diff --git a/src/games/ror2.rs b/src/games/ror2.rs index e3ca4c2..0afb89f 100644 --- a/src/games/ror2.rs +++ b/src/games/ror2.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27016), diff --git a/src/games/rust.rs b/src/games/rust.rs index 21277e1..2dcb893 100644 --- a/src/games/rust.rs +++ b/src/games/rust.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/sc.rs b/src/games/sc.rs index 9811941..d8418aa 100644 --- a/src/games/sc.rs +++ b/src/games/sc.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/sdtd.rs b/src/games/sdtd.rs index dd5ee93..cc4eb02 100644 --- a/src/games/sdtd.rs +++ b/src/games/sdtd.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(26900), diff --git a/src/games/ss.rs b/src/games/ss.rs index 57fd80f..8cdcb3c 100644 --- a/src/games/ss.rs +++ b/src/games/ss.rs @@ -1,8 +1,8 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::protocols::gamespy; use crate::protocols::gamespy::one::Response; use crate::GDResult; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { gamespy::one::query(address, port.unwrap_or(25601), None) } diff --git a/src/games/tf.rs b/src/games/tf.rs index 064c32b..62d6830 100644 --- a/src/games/tf.rs +++ b/src/games/tf.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27016), diff --git a/src/games/tf2.rs b/src/games/tf2.rs index 2be6994..bbca879 100644 --- a/src/games/tf2.rs +++ b/src/games/tf2.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/tfc.rs b/src/games/tfc.rs index 0b966b1..154b05f 100644 --- a/src/games/tfc.rs +++ b/src/games/tfc.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/ts.rs b/src/games/ts.rs index 1cdce9b..ebdb30c 100644 --- a/src/games/ts.rs +++ b/src/games/ts.rs @@ -1,4 +1,4 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, get_optional_extracted_data, Server, ServerPlayer, SteamApp}, GDResult, @@ -94,7 +94,7 @@ impl Response { } } -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/unturned.rs b/src/games/unturned.rs index 1c5afda..827a039 100644 --- a/src/games/unturned.rs +++ b/src/games/unturned.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27015), diff --git a/src/games/ut.rs b/src/games/ut.rs index 3f96537..e7ddc89 100644 --- a/src/games/ut.rs +++ b/src/games/ut.rs @@ -1,8 +1,8 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::protocols::gamespy; use crate::protocols::gamespy::one::Response; use crate::GDResult; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { gamespy::one::query(address, port.unwrap_or(7778), None) } diff --git a/src/games/vr.rs b/src/games/vr.rs index 31523e5..89ac7b7 100644 --- a/src/games/vr.rs +++ b/src/games/vr.rs @@ -1,10 +1,10 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::valve::{self, game, SteamApp}, GDResult, }; -pub fn query(address: &Ipv4Addr, port: Option) -> GDResult { +pub fn query(address: &IpAddr, port: Option) -> GDResult { let valve_response = valve::query( address, port.unwrap_or(27016), diff --git a/src/protocols/gamespy/protocols/one/protocol.rs b/src/protocols/gamespy/protocols/one/protocol.rs index b688f81..e377d58 100644 --- a/src/protocols/gamespy/protocols/one/protocol.rs +++ b/src/protocols/gamespy/protocols/one/protocol.rs @@ -11,10 +11,10 @@ use crate::{ use crate::protocols::gamespy::common::has_password; use std::collections::HashMap; -use std::net::Ipv4Addr; +use std::net::IpAddr; fn get_server_values( - address: &Ipv4Addr, + address: &IpAddr, port: u16, timeout_settings: Option, ) -> GDResult> { @@ -178,7 +178,7 @@ fn extract_players(server_vars: &mut HashMap, players_maximum: u /// If there are parsing problems using the `query` function, you can directly /// get the server's values using this function. pub fn query_vars( - address: &Ipv4Addr, + address: &IpAddr, port: u16, timeout_settings: Option, ) -> GDResult> { @@ -188,7 +188,7 @@ pub fn query_vars( /// Query a server by providing the address, the port and timeout settings. /// Providing None to the timeout settings results in using the default values. /// (TimeoutSettings::[default](TimeoutSettings::default)). -pub fn query(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { +pub fn query(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { let mut server_vars = query_vars(address, port, timeout_settings)?; let players_maximum = server_vars diff --git a/src/protocols/gamespy/protocols/three/protocol.rs b/src/protocols/gamespy/protocols/three/protocol.rs index fb8cfe3..2cd6afc 100644 --- a/src/protocols/gamespy/protocols/three/protocol.rs +++ b/src/protocols/gamespy/protocols/three/protocol.rs @@ -5,7 +5,7 @@ use crate::protocols::types::TimeoutSettings; use crate::socket::{Socket, UdpSocket}; use crate::{GDError, GDResult}; use std::collections::HashMap; -use std::net::Ipv4Addr; +use std::net::IpAddr; const THIS_SESSION_ID: u32 = 1; @@ -43,7 +43,7 @@ struct GameSpy3 { const PACKET_SIZE: usize = 2048; impl GameSpy3 { - fn new(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { + fn new(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { let socket = UdpSocket::new(address, port)?; socket.apply_timeout(timeout_settings)?; @@ -104,7 +104,7 @@ impl GameSpy3 { } } -fn get_server_packets(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult>> { +fn get_server_packets(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult>> { let mut gs3 = GameSpy3::new(address, port, timeout_settings)?; let challenge = gs3.make_initial_handshake()?; @@ -165,7 +165,7 @@ fn data_to_map(packet: &[u8]) -> GDResult<(HashMap, Vec)> { /// If there are parsing problems using the `query` function, you can directly /// get the server's values using this function. pub fn query_vars( - address: &Ipv4Addr, + address: &IpAddr, port: u16, timeout_settings: Option, ) -> GDResult> { @@ -308,7 +308,7 @@ fn parse_players_and_teams(packets: Vec>) -> GDResult<(Vec, Vec< /// Query a server by providing the address, the port and timeout settings. /// Providing None to the timeout settings results in using the default values. /// (TimeoutSettings::[default](TimeoutSettings::default)). -pub fn query(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { +pub fn query(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { let packets = get_server_packets(address, port, timeout_settings)?; let (mut server_vars, remaining_data) = data_to_map(packets.get(0).ok_or(GDError::PacketBad)?)?; diff --git a/src/protocols/minecraft/protocol/bedrock.rs b/src/protocols/minecraft/protocol/bedrock.rs index 6fa3632..371bb05 100644 --- a/src/protocols/minecraft/protocol/bedrock.rs +++ b/src/protocols/minecraft/protocol/bedrock.rs @@ -1,7 +1,7 @@ // This file has code that has been documented by the NodeJS GameDig library // (MIT) from https://github.com/gamedig/node-gamedig/blob/master/protocols/minecraftbedrock.js -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ bufferer::{Bufferer, Endianess}, protocols::{ @@ -19,7 +19,7 @@ pub struct Bedrock { } impl Bedrock { - fn new(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { + fn new(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { let socket = UdpSocket::new(address, port)?; socket.apply_timeout(timeout_settings)?; @@ -93,7 +93,7 @@ impl Bedrock { }) } - pub fn query(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { + pub fn query(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { Bedrock::new(address, port, timeout_settings)?.get_info() } } diff --git a/src/protocols/minecraft/protocol/java.rs b/src/protocols/minecraft/protocol/java.rs index 6e9b5f5..f547bfd 100644 --- a/src/protocols/minecraft/protocol/java.rs +++ b/src/protocols/minecraft/protocol/java.rs @@ -1,4 +1,4 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ bufferer::{Bufferer, Endianess}, protocols::{ @@ -31,7 +31,7 @@ pub struct Java { } impl Java { - fn new(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { + fn new(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { let socket = TcpSocket::new(address, port)?; socket.apply_timeout(timeout_settings)?; @@ -139,7 +139,7 @@ impl Java { }) } - pub fn query(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { + pub fn query(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { Java::new(address, port, timeout_settings)?.get_info() } } diff --git a/src/protocols/minecraft/protocol/legacy_bv1_8.rs b/src/protocols/minecraft/protocol/legacy_bv1_8.rs index 9e742dd..bb2a045 100644 --- a/src/protocols/minecraft/protocol/legacy_bv1_8.rs +++ b/src/protocols/minecraft/protocol/legacy_bv1_8.rs @@ -1,4 +1,4 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ bufferer::{Bufferer, Endianess}, protocols::{ @@ -16,7 +16,7 @@ pub struct LegacyBV1_8 { } impl LegacyBV1_8 { - fn new(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { + fn new(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { let socket = TcpSocket::new(address, port)?; socket.apply_timeout(timeout_settings)?; @@ -60,7 +60,7 @@ impl LegacyBV1_8 { }) } - pub fn query(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { + pub fn query(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { LegacyBV1_8::new(address, port, timeout_settings)?.get_info() } } diff --git a/src/protocols/minecraft/protocol/legacy_v1_4.rs b/src/protocols/minecraft/protocol/legacy_v1_4.rs index ff79f57..02a837e 100644 --- a/src/protocols/minecraft/protocol/legacy_v1_4.rs +++ b/src/protocols/minecraft/protocol/legacy_v1_4.rs @@ -1,4 +1,4 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ bufferer::{Bufferer, Endianess}, protocols::{ @@ -16,7 +16,7 @@ pub struct LegacyV1_4 { } impl LegacyV1_4 { - fn new(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { + fn new(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { let socket = TcpSocket::new(address, port)?; socket.apply_timeout(timeout_settings)?; @@ -64,7 +64,7 @@ impl LegacyV1_4 { }) } - pub fn query(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { + pub fn query(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { LegacyV1_4::new(address, port, timeout_settings)?.get_info() } } diff --git a/src/protocols/minecraft/protocol/legacy_v1_6.rs b/src/protocols/minecraft/protocol/legacy_v1_6.rs index 1ff0545..c976bd0 100644 --- a/src/protocols/minecraft/protocol/legacy_v1_6.rs +++ b/src/protocols/minecraft/protocol/legacy_v1_6.rs @@ -1,4 +1,4 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ bufferer::{Bufferer, Endianess}, protocols::{ @@ -16,7 +16,7 @@ pub struct LegacyV1_6 { } impl LegacyV1_6 { - fn new(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { + fn new(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { let socket = TcpSocket::new(address, port)?; socket.apply_timeout(timeout_settings)?; @@ -93,7 +93,7 @@ impl LegacyV1_6 { LegacyV1_6::get_response(&mut buffer) } - pub fn query(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { + pub fn query(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { LegacyV1_6::new(address, port, timeout_settings)?.get_info() } } diff --git a/src/protocols/minecraft/protocol/mod.rs b/src/protocols/minecraft/protocol/mod.rs index 2911ab1..a424b51 100644 --- a/src/protocols/minecraft/protocol/mod.rs +++ b/src/protocols/minecraft/protocol/mod.rs @@ -1,4 +1,4 @@ -use std::net::Ipv4Addr; +use std::net::IpAddr; use crate::{ protocols::minecraft::{ protocol::{ @@ -25,7 +25,7 @@ mod legacy_v1_6; /// Queries a Minecraft server with all the protocol variants one by one (Java /// -> Bedrock -> Legacy (1.6 -> 1.4 -> Beta 1.8)). -pub fn query(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { +pub fn query(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { if let Ok(response) = query_java(address, port, timeout_settings.clone()) { return Ok(response); } @@ -42,12 +42,12 @@ pub fn query(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { +pub fn query_java(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { Java::query(address, port, timeout_settings) } /// Query a (Java) Legacy Server (1.6 -> 1.4 -> Beta 1.8). -pub fn query_legacy(address: &Ipv4Addr, port: u16, timeout_settings: Option) -> GDResult { +pub fn query_legacy(address: &IpAddr, port: u16, timeout_settings: Option) -> GDResult { if let Ok(response) = query_legacy_specific(LegacyGroup::V1_6, address, port, timeout_settings.clone()) { return Ok(response); } @@ -66,7 +66,7 @@ pub fn query_legacy(address: &Ipv4Addr, port: u16, timeout_settings: Option