This commit is contained in:
Alexey
2026-03-21 15:45:29 +03:00
parent 7a8f946029
commit d7bbb376c9
154 changed files with 6194 additions and 3775 deletions

View File

@@ -1,8 +1,8 @@
//! Time Sync
use std::time::Duration;
use chrono::{DateTime, Utc};
use tracing::{debug, warn, error};
use std::time::Duration;
use tracing::{debug, error, warn};
#[allow(dead_code)]
const TIME_SYNC_URL: &str = "https://core.telegram.org/getProxySecret";
@@ -26,29 +26,29 @@ pub async fn check_time_sync() -> Option<TimeSyncResult> {
.timeout(Duration::from_secs(10))
.build()
.ok()?;
let response = client.get(TIME_SYNC_URL).send().await.ok()?;
// Get Date header
let date_header = response.headers().get("date")?;
let date_str = date_header.to_str().ok()?;
// Parse date
let server_time = DateTime::parse_from_rfc2822(date_str)
.ok()?
.with_timezone(&Utc);
let local_time = Utc::now();
let skew_secs = (local_time - server_time).num_seconds();
let is_skewed = skew_secs.abs() > MAX_TIME_SKEW_SECS;
let result = TimeSyncResult {
server_time,
local_time,
skew_secs,
is_skewed,
};
if is_skewed {
warn!(
server = %server_time,
@@ -59,7 +59,7 @@ pub async fn check_time_sync() -> Option<TimeSyncResult> {
} else {
debug!(skew = skew_secs, "Time sync OK");
}
Some(result)
}
@@ -78,4 +78,4 @@ pub async fn time_sync_task(check_interval: Duration) -> ! {
tokio::time::sleep(check_interval).await;
}
}
}