skip getProxyConfigV6 when ipv6 is disabled

This commit is contained in:
sabraman 2026-03-23 00:56:32 +03:00
parent d494556701
commit 094d948f77
2 changed files with 82 additions and 47 deletions

View File

@ -146,6 +146,8 @@ pub(crate) async fn initialize_me_pool(
)
.await;
}
let ipv6_enabled = config.network.ipv6 != Some(false);
let cfg_v6 = if ipv6_enabled {
startup_tracker
.start_component(
COMPONENT_ME_PROXY_CONFIG_V6,
@ -177,8 +179,37 @@ pub(crate) async fn initialize_me_pool(
)
.await;
}
cfg_v6
} else {
startup_tracker
.skip_component(
COMPONENT_ME_PROXY_CONFIG_V6,
Some("IPv6 is disabled in config".to_string()),
)
.await;
None
};
if let Some(cfg_v4) = cfg_v4 {
if ipv6_enabled && cfg_v6.is_none() {
startup_tracker
.skip_component(
COMPONENT_ME_POOL_CONSTRUCT,
Some("ME configs are incomplete".to_string()),
)
.await;
startup_tracker
.fail_component(
COMPONENT_ME_POOL_INIT_STAGE1,
Some("ME configs are incomplete".to_string()),
)
.await;
startup_tracker
.set_me_status(StartupMeStatus::Failed, "failed")
.await;
return None;
}
if let (Some(cfg_v4), Some(cfg_v6)) = (cfg_v4, cfg_v6) {
startup_tracker
.start_component(
COMPONENT_ME_POOL_CONSTRUCT,
@ -200,8 +231,10 @@ pub(crate) async fn initialize_me_pool(
config.timeouts.me_one_retry,
config.timeouts.me_one_timeout_ms,
cfg_v4.map.clone(),
cfg_v6.map.clone(),
cfg_v4.default_dc.or(cfg_v6.default_dc),
cfg_v6.as_ref().map(|cfg| cfg.map.clone()).unwrap_or_default(),
cfg_v4
.default_dc
.or(cfg_v6.as_ref().and_then(|cfg| cfg.default_dc)),
decision.clone(),
Some(upstream_manager.clone()),
rng.clone(),

View File

@ -378,6 +378,7 @@ async fn run_update_cycle(
}
let mut ready_v6: Option<(ProxyConfigData, u64)> = None;
if cfg.network.ipv6 != Some(false) {
let cfg_v6 = retry_fetch("https://core.telegram.org/getProxyConfigV6").await;
if let Some(cfg_v6) = cfg_v6
&& snapshot_passes_guards(cfg, &cfg_v6, "getProxyConfigV6")
@ -400,6 +401,7 @@ async fn run_update_cycle(
ready_v6 = Some((cfg_v6, cfg_v6_hash));
}
}
}
if ready_v4.is_some() || ready_v6.is_some() {
if map_apply_cooldown_ready(state.last_map_apply_at, apply_cooldown) {