mirror of
https://git.ngram.ca/OpenJam/rc-servers
synced 2026-08-23 23:08:52 +00:00
Fix IPv6 parsing for redirect CLI arg; #138
This commit is contained in:
@@ -118,8 +118,7 @@ pub struct QueueHandler {
|
|||||||
users_per_game: usize,
|
users_per_game: usize,
|
||||||
is_enabled: bool,
|
is_enabled: bool,
|
||||||
is_parties_enabled: bool,
|
is_parties_enabled: bool,
|
||||||
hostname: String,
|
host_addr: std::net::SocketAddr,
|
||||||
hostport: u16,
|
|
||||||
network_conf: crate::data::network::NetworkConfigData,
|
network_conf: crate::data::network::NetworkConfigData,
|
||||||
factory: std::sync::Arc<oj_rc_core::factory::Factory>,
|
factory: std::sync::Arc<oj_rc_core::factory::Factory>,
|
||||||
cpu_counter: std::sync::Arc<oj_rc_core::cubes::CpuListParser>,
|
cpu_counter: std::sync::Arc<oj_rc_core::cubes::CpuListParser>,
|
||||||
@@ -139,7 +138,7 @@ impl QueueHandler {
|
|||||||
weapon_guesser: std::sync::Arc<oj_rc_core::cubes::WeaponListParser>,
|
weapon_guesser: std::sync::Arc<oj_rc_core::cubes::WeaponListParser>,
|
||||||
team_choosers: crate::team_selection::InitedTeamChoosers,
|
team_choosers: crate::team_selection::InitedTeamChoosers,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let (domain, port_str) = game_host.split_once(':').expect("Invalid redirect address (must be domain:port)");
|
let addr: std::net::SocketAddr = game_host.parse().expect("Invalid redirect address (must be domain:port)");
|
||||||
let mp_settings = oj_rc_core::ConfigProvider::<()>::multiplayer_settings(conf);
|
let mp_settings = oj_rc_core::ConfigProvider::<()>::multiplayer_settings(conf);
|
||||||
let server_conf = <oj_rc_core::ConfigImpl as oj_rc_core::ConfigProvider<()>>::server_config(conf);
|
let server_conf = <oj_rc_core::ConfigImpl as oj_rc_core::ConfigProvider<()>>::server_config(conf);
|
||||||
Self {
|
Self {
|
||||||
@@ -149,8 +148,7 @@ impl QueueHandler {
|
|||||||
users_per_game: oj_rc_core::ConfigProvider::<()>::players_per_game(conf),
|
users_per_game: oj_rc_core::ConfigProvider::<()>::players_per_game(conf),
|
||||||
is_enabled: mp_settings.is_enabled,
|
is_enabled: mp_settings.is_enabled,
|
||||||
is_parties_enabled: server_conf.allow_parties,
|
is_parties_enabled: server_conf.allow_parties,
|
||||||
hostname: domain.to_owned(),
|
host_addr: addr,
|
||||||
hostport: port_str.parse().expect("Invalid redirect port"),
|
|
||||||
network_conf: crate::data::network::NetworkConfigData::from_conf(oj_rc_core::ConfigProvider::<()>::network_config(conf)),
|
network_conf: crate::data::network::NetworkConfigData::from_conf(oj_rc_core::ConfigProvider::<()>::network_config(conf)),
|
||||||
factory,
|
factory,
|
||||||
cpu_counter,
|
cpu_counter,
|
||||||
@@ -169,8 +167,7 @@ impl QueueHandler {
|
|||||||
|
|
||||||
let users_in_queue = self.users_in_queue.clone();
|
let users_in_queue = self.users_in_queue.clone();
|
||||||
let users_per_game = self.users_per_game;
|
let users_per_game = self.users_per_game;
|
||||||
let hostname = self.hostname.clone();
|
let host_addr = self.host_addr.clone();
|
||||||
let hostport = self.hostport;
|
|
||||||
let network_conf = self.network_conf.clone();
|
let network_conf = self.network_conf.clone();
|
||||||
let factory = self.factory.clone();
|
let factory = self.factory.clone();
|
||||||
let cpu_counter = self.cpu_counter.clone();
|
let cpu_counter = self.cpu_counter.clone();
|
||||||
@@ -231,8 +228,7 @@ impl QueueHandler {
|
|||||||
};
|
};
|
||||||
|
|
||||||
QueueHandler::enter_match_static(
|
QueueHandler::enter_match_static(
|
||||||
hostname.clone(),
|
host_addr,
|
||||||
hostport,
|
|
||||||
network_conf.clone(),
|
network_conf.clone(),
|
||||||
factory.clone(),
|
factory.clone(),
|
||||||
cpu_counter.clone(),
|
cpu_counter.clone(),
|
||||||
@@ -262,8 +258,7 @@ impl QueueHandler {
|
|||||||
|
|
||||||
async fn enter_match(&self, key: QueueKey, q_entry: Queue, user: &(dyn oj_rc_core::persist::user::LobbyUser + Send + Sync)) {
|
async fn enter_match(&self, key: QueueKey, q_entry: Queue, user: &(dyn oj_rc_core::persist::user::LobbyUser + Send + Sync)) {
|
||||||
Self::enter_match_static(
|
Self::enter_match_static(
|
||||||
self.hostname.clone(),
|
self.host_addr.clone(),
|
||||||
self.hostport,
|
|
||||||
self.network_conf.clone(),
|
self.network_conf.clone(),
|
||||||
self.factory.clone(),
|
self.factory.clone(),
|
||||||
self.cpu_counter.clone(),
|
self.cpu_counter.clone(),
|
||||||
@@ -291,8 +286,7 @@ impl QueueHandler {
|
|||||||
|
|
||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
async fn enter_match_static(
|
async fn enter_match_static(
|
||||||
hostname: String,
|
host: std::net::SocketAddr,
|
||||||
hostport: u16,
|
|
||||||
network_conf: crate::data::network::NetworkConfigData,
|
network_conf: crate::data::network::NetworkConfigData,
|
||||||
factory: std::sync::Arc<oj_rc_core::factory::Factory>,
|
factory: std::sync::Arc<oj_rc_core::factory::Factory>,
|
||||||
cpu_counter: std::sync::Arc<oj_rc_core::cubes::CpuListParser>,
|
cpu_counter: std::sync::Arc<oj_rc_core::cubes::CpuListParser>,
|
||||||
@@ -339,8 +333,8 @@ impl QueueHandler {
|
|||||||
.chain(fakes.players.into_iter().map(|(desc, _emu)| desc),)
|
.chain(fakes.players.into_iter().map(|(desc, _emu)| desc),)
|
||||||
.collect();
|
.collect();
|
||||||
let enter_battle_ev = crate::events::battle_enter::BattleEnter {
|
let enter_battle_ev = crate::events::battle_enter::BattleEnter {
|
||||||
host: hostname.clone(),
|
host: host.ip().to_string(),
|
||||||
port: hostport,
|
port: host.port(),
|
||||||
map: key.map.clone(),
|
map: key.map.clone(),
|
||||||
mode: key.mode,
|
mode: key.mode,
|
||||||
guid: guid_str.clone(),
|
guid: guid_str.clone(),
|
||||||
@@ -421,8 +415,8 @@ impl QueueHandler {
|
|||||||
.map(|x| x.queue_user.as_ref().unwrap().player.clone())
|
.map(|x| x.queue_user.as_ref().unwrap().player.clone())
|
||||||
.collect();
|
.collect();
|
||||||
let enter_battle_ev = crate::events::battle_enter::BattleEnter {
|
let enter_battle_ev = crate::events::battle_enter::BattleEnter {
|
||||||
host: self.hostname.clone(),
|
host: self.host_addr.ip().to_string(),
|
||||||
port: self.hostport,
|
port: self.host_addr.port(),
|
||||||
map: session.config.map.clone(),
|
map: session.config.map.clone(),
|
||||||
mode,
|
mode,
|
||||||
guid: guid_str.clone(),
|
guid: guid_str.clone(),
|
||||||
|
|||||||
Reference in New Issue
Block a user