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,18 +518,21 @@ async fn ws_handler(
.and_then(|s| s.trim().parse::<IpAddr>().ok()) .and_then(|s| s.trim().parse::<IpAddr>().ok())
.unwrap_or_else(|| addr.ip()); .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 is_local = ip.is_loopback();
if !is_local {
let conns = state.ip_connections.lock().unwrap(); let conns = state.ip_connections.lock().unwrap();
let count = conns.get(&ip).copied().unwrap_or(0); let count = conns.get(&ip).copied().unwrap_or(0);
if count >= 10 { if count >= 20 {
tracing::warn!("IP {} ylitti yhteysrajan ({}/10) — estetty", ip, count); tracing::warn!("IP {} ylitti yhteysrajan ({}/20) — estetty", ip, count);
return ( return (
axum::http::StatusCode::TOO_MANY_REQUESTS, axum::http::StatusCode::TOO_MANY_REQUESTS,
"Max 10 yhteyttä per IP", "Max 20 yhteyttä per IP",
).into_response(); ).into_response();
} }
} }
}
ws.max_message_size(MAX_MESSAGE_SIZE) ws.max_message_size(MAX_MESSAGE_SIZE)
.on_upgrade(move |socket| handle_socket(socket, state, ip)) .on_upgrade(move |socket| handle_socket(socket, state, ip))