[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.
This commit is contained in:
Tom 2023-05-29 08:10:21 +00:00 committed by GitHub
parent e620398615
commit 3f654e0dfd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
60 changed files with 155 additions and 162 deletions

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(2304),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27020),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let mut valve_response = valve::query(
address,
port.unwrap_or(7780),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<Response> {
gamespy::one::query(address, port.unwrap_or(23000), None)
}

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27016),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27004),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<Response> {
gamespy::three::query(address, port.unwrap_or(64100), None)
}

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27016),

View file

@ -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<u16>) -> GDResult<Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<Response> {
query_with_timeout(address, port, TimeoutSettings::default())
}
pub fn query_with_timeout(address: &Ipv4Addr, port: Option<u16>, timeout_settings: TimeoutSettings) -> GDResult<Response> {
pub fn query_with_timeout(address: &IpAddr, port: Option<u16>, timeout_settings: TimeoutSettings) -> GDResult<Response> {
let mut client = ValveProtocol::new(address, port.unwrap_or(5478), Some(timeout_settings))?;
let mut buffer = client.get_request_data(
&Engine::GoldSrc(true),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27016),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27131),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<JavaResponse> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<JavaResponse> {
if let Ok(response) = query_java(address, port) {
return Ok(response);
}
@ -24,22 +24,22 @@ pub fn query(address: &Ipv4Addr, port: Option<u16>) -> GDResult<JavaResponse> {
}
/// Query a Java Server.
pub fn query_java(address: &Ipv4Addr, port: Option<u16>) -> GDResult<JavaResponse> {
pub fn query_java(address: &IpAddr, port: Option<u16>) -> GDResult<JavaResponse> {
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<u16>) -> GDResult<JavaResponse> {
pub fn query_legacy(address: &IpAddr, port: Option<u16>) -> GDResult<JavaResponse> {
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<u16>) -> GDResult<JavaResponse> {
pub fn query_legacy_specific(group: LegacyGroup, address: &IpAddr, port: Option<u16>) -> GDResult<JavaResponse> {
minecraft::query_legacy_specific(group, address, port_or_java_default(port), None)
}
/// Query a Bedrock Server.
pub fn query_bedrock(address: &Ipv4Addr, port: Option<u16>) -> GDResult<BedrockResponse> {
pub fn query_bedrock(address: &IpAddr, port: Option<u16>) -> GDResult<BedrockResponse> {
minecraft::query_bedrock(address, port_or_bedrock_default(port), None)
}

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27005),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(7776),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(16261),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27016),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(26900),

View file

@ -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<u16>) -> GDResult<Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<Response> {
gamespy::one::query(address, port.unwrap_or(25601), None)
}

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27016),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27015),

View file

@ -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<u16>) -> GDResult<Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<Response> {
gamespy::one::query(address, port.unwrap_or(7778), None)
}

View file

@ -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<u16>) -> GDResult<game::Response> {
pub fn query(address: &IpAddr, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(
address,
port.unwrap_or(27016),