Localhost vapautettu IP-yhteysrajasta, tuotannon raja nostettu 20:een

Kehitysympäristössä (127.0.0.1) ei enää yhteysrajaa — useita
selainikkunoita ja native-nodeja voi yhdistää vapaasti.
Tuotannossa raja 10→20 per ulkoinen IP.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jaakko Vanhala
2026-04-09 23:14:06 +03:00
parent f910cd8c61
commit a0e52faa44

View File

@@ -518,16 +518,19 @@ async fn ws_handler(
.and_then(|s| s.trim().parse::<IpAddr>().ok())
.unwrap_or_else(|| addr.ip());
// Max yhteyttä per IP: jokainen selain tarvitsee 2 (UI + coder-node)
// Max yhteyttä per IP (ei rajoiteta localhost/127.0.0.1)
{
let conns = state.ip_connections.lock().unwrap();
let count = conns.get(&ip).copied().unwrap_or(0);
if count >= 10 {
tracing::warn!("IP {} ylitti yhteysrajan ({}/10) — estetty", ip, count);
return (
axum::http::StatusCode::TOO_MANY_REQUESTS,
"Max 10 yhteyttä per IP",
).into_response();
let is_local = ip.is_loopback();
if !is_local {
let conns = state.ip_connections.lock().unwrap();
let count = conns.get(&ip).copied().unwrap_or(0);
if count >= 20 {
tracing::warn!("IP {} ylitti yhteysrajan ({}/20) — estetty", ip, count);
return (
axum::http::StatusCode::TOO_MANY_REQUESTS,
"Max 20 yhteyttä per IP",
).into_response();
}
}
}