mirror of https://github.com/telemt/telemt.git
skip getProxyConfigV6 when ipv6 is disabled
This commit is contained in:
parent
d494556701
commit
094d948f77
|
|
@ -146,39 +146,70 @@ pub(crate) async fn initialize_me_pool(
|
||||||
)
|
)
|
||||||
.await;
|
.await;
|
||||||
}
|
}
|
||||||
startup_tracker
|
let ipv6_enabled = config.network.ipv6 != Some(false);
|
||||||
.start_component(
|
let cfg_v6 = if ipv6_enabled {
|
||||||
COMPONENT_ME_PROXY_CONFIG_V6,
|
startup_tracker
|
||||||
Some("load startup proxy-config v6".to_string()),
|
.start_component(
|
||||||
|
COMPONENT_ME_PROXY_CONFIG_V6,
|
||||||
|
Some("load startup proxy-config v6".to_string()),
|
||||||
|
)
|
||||||
|
.await;
|
||||||
|
startup_tracker
|
||||||
|
.set_me_status(StartupMeStatus::Initializing, COMPONENT_ME_PROXY_CONFIG_V6)
|
||||||
|
.await;
|
||||||
|
let cfg_v6 = load_startup_proxy_config_snapshot(
|
||||||
|
"https://core.telegram.org/getProxyConfigV6",
|
||||||
|
config.general.proxy_config_v6_cache_path.as_deref(),
|
||||||
|
me2dc_fallback,
|
||||||
|
"getProxyConfigV6",
|
||||||
)
|
)
|
||||||
.await;
|
.await;
|
||||||
startup_tracker
|
if cfg_v6.is_some() {
|
||||||
.set_me_status(StartupMeStatus::Initializing, COMPONENT_ME_PROXY_CONFIG_V6)
|
startup_tracker
|
||||||
.await;
|
.complete_component(
|
||||||
let cfg_v6 = load_startup_proxy_config_snapshot(
|
COMPONENT_ME_PROXY_CONFIG_V6,
|
||||||
"https://core.telegram.org/getProxyConfigV6",
|
Some("proxy-config v6 loaded".to_string()),
|
||||||
config.general.proxy_config_v6_cache_path.as_deref(),
|
)
|
||||||
me2dc_fallback,
|
.await;
|
||||||
"getProxyConfigV6",
|
} else {
|
||||||
)
|
startup_tracker
|
||||||
.await;
|
.fail_component(
|
||||||
if cfg_v6.is_some() {
|
COMPONENT_ME_PROXY_CONFIG_V6,
|
||||||
startup_tracker
|
Some("proxy-config v6 unavailable".to_string()),
|
||||||
.complete_component(
|
)
|
||||||
COMPONENT_ME_PROXY_CONFIG_V6,
|
.await;
|
||||||
Some("proxy-config v6 loaded".to_string()),
|
}
|
||||||
)
|
cfg_v6
|
||||||
.await;
|
|
||||||
} else {
|
} else {
|
||||||
startup_tracker
|
startup_tracker
|
||||||
.fail_component(
|
.skip_component(
|
||||||
COMPONENT_ME_PROXY_CONFIG_V6,
|
COMPONENT_ME_PROXY_CONFIG_V6,
|
||||||
Some("proxy-config v6 unavailable".to_string()),
|
Some("IPv6 is disabled in config".to_string()),
|
||||||
)
|
)
|
||||||
.await;
|
.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
|
startup_tracker
|
||||||
.start_component(
|
.start_component(
|
||||||
COMPONENT_ME_POOL_CONSTRUCT,
|
COMPONENT_ME_POOL_CONSTRUCT,
|
||||||
|
|
@ -200,8 +231,10 @@ pub(crate) async fn initialize_me_pool(
|
||||||
config.timeouts.me_one_retry,
|
config.timeouts.me_one_retry,
|
||||||
config.timeouts.me_one_timeout_ms,
|
config.timeouts.me_one_timeout_ms,
|
||||||
cfg_v4.map.clone(),
|
cfg_v4.map.clone(),
|
||||||
cfg_v6.map.clone(),
|
cfg_v6.as_ref().map(|cfg| cfg.map.clone()).unwrap_or_default(),
|
||||||
cfg_v4.default_dc.or(cfg_v6.default_dc),
|
cfg_v4
|
||||||
|
.default_dc
|
||||||
|
.or(cfg_v6.as_ref().and_then(|cfg| cfg.default_dc)),
|
||||||
decision.clone(),
|
decision.clone(),
|
||||||
Some(upstream_manager.clone()),
|
Some(upstream_manager.clone()),
|
||||||
rng.clone(),
|
rng.clone(),
|
||||||
|
|
|
||||||
|
|
@ -378,26 +378,28 @@ async fn run_update_cycle(
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut ready_v6: Option<(ProxyConfigData, u64)> = None;
|
let mut ready_v6: Option<(ProxyConfigData, u64)> = None;
|
||||||
let cfg_v6 = retry_fetch("https://core.telegram.org/getProxyConfigV6").await;
|
if cfg.network.ipv6 != Some(false) {
|
||||||
if let Some(cfg_v6) = cfg_v6
|
let cfg_v6 = retry_fetch("https://core.telegram.org/getProxyConfigV6").await;
|
||||||
&& snapshot_passes_guards(cfg, &cfg_v6, "getProxyConfigV6")
|
if let Some(cfg_v6) = cfg_v6
|
||||||
{
|
&& snapshot_passes_guards(cfg, &cfg_v6, "getProxyConfigV6")
|
||||||
let cfg_v6_hash = hash_proxy_config(&cfg_v6);
|
{
|
||||||
let stable_hits = state.config_v6.observe(cfg_v6_hash);
|
let cfg_v6_hash = hash_proxy_config(&cfg_v6);
|
||||||
if stable_hits < required_cfg_snapshots {
|
let stable_hits = state.config_v6.observe(cfg_v6_hash);
|
||||||
debug!(
|
if stable_hits < required_cfg_snapshots {
|
||||||
stable_hits,
|
debug!(
|
||||||
required_cfg_snapshots,
|
stable_hits,
|
||||||
snapshot = format_args!("0x{cfg_v6_hash:016x}"),
|
required_cfg_snapshots,
|
||||||
"ME config v6 candidate observed"
|
snapshot = format_args!("0x{cfg_v6_hash:016x}"),
|
||||||
);
|
"ME config v6 candidate observed"
|
||||||
} else if state.config_v6.is_applied(cfg_v6_hash) {
|
);
|
||||||
debug!(
|
} else if state.config_v6.is_applied(cfg_v6_hash) {
|
||||||
snapshot = format_args!("0x{cfg_v6_hash:016x}"),
|
debug!(
|
||||||
"ME config v6 stable snapshot already applied"
|
snapshot = format_args!("0x{cfg_v6_hash:016x}"),
|
||||||
);
|
"ME config v6 stable snapshot already applied"
|
||||||
} else {
|
);
|
||||||
ready_v6 = Some((cfg_v6, cfg_v6_hash));
|
} else {
|
||||||
|
ready_v6 = Some((cfg_v6, cfg_v6_hash));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue