fix: app cache and other issues (#5460)

* fixes

* #[serde(untagged)] my BEHATED (still kinda broken)

* remove unused hasContent ref

* clean up code in fetch instance

* ping 3 times for average latency

* fix: pinging to be more accurate

TCP_NODELAY — Set on the TCP stream right after connect, preventing Nagle's algorithm from buffering the small ping packet (could save up to ~40ms)

Instant over Utc::now() — Switched to monotonic std::time::Instant for timing, which is more precise and designed for measuring elapsed time (still using chrono just for the ping magic value)

* delete useFetch util and just use native fetch

* rename worlds until functions for more clarity

* fix lint

* fix cache.rs logic

* make backend ping use both impls

* Add optional timeout to server ping

* fix gallery appearing in nav with no items

* remove EU countries and add EU option for server country

* add uk to europe

---------

Co-authored-by: aecsocket <aecsocket@tutanota.com>
This commit is contained in:
Truman Gao
2026-03-03 10:41:12 -08:00
committed by GitHub
parent 211ec20970
commit 0029a22569
17 changed files with 468 additions and 272 deletions

View File

@@ -1,3 +1,5 @@
use std::time::Duration;
use actix_web::{HttpRequest, post, web};
use serde::{Deserialize, Serialize};
@@ -18,6 +20,7 @@ pub fn config(cfg: &mut utoipa_actix_web::service_config::ServiceConfig) {
pub struct PingRequest {
pub address: String,
pub port: u16,
pub timeout_ms: Option<u64>,
}
#[utoipa::path]
@@ -38,7 +41,8 @@ pub async fn ping_minecraft_java(
)
.await?;
server_ping::ping_server(&request.address, request.port)
let timeout = request.timeout_ms.map(Duration::from_millis);
server_ping::ping_server(&request.address, request.port, timeout)
.await
.wrap_request_err("failed to ping server")?;