SYN Limiter interval and hitcount in Config

Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
This commit is contained in:
Alexey
2026-06-12 00:29:23 +03:00
parent eeff16c3fd
commit 942882f9de
4 changed files with 53 additions and 61 deletions

View File

@@ -347,6 +347,8 @@ const LISTENER_CONFIG_KEYS: &[&str] = &[
"port",
"client_mss",
"synlimit",
"synlimit_seconds",
"synlimit_hitcount",
"announce",
"announce_ip",
"proxy_protocol",
@@ -1949,6 +1951,16 @@ impl ProxyConfig {
ProxyError::Config(format!("server.listeners[{idx}].client_mss {error}"))
})?;
}
if listener.synlimit_seconds == 0 {
return Err(ProxyError::Config(format!(
"server.listeners[{idx}].synlimit_seconds must be > 0"
)));
}
if listener.synlimit_hitcount == 0 {
return Err(ProxyError::Config(format!(
"server.listeners[{idx}].synlimit_hitcount must be > 0"
)));
}
}
if config.server.accept_permit_timeout_ms > 60_000 {
@@ -2188,6 +2200,8 @@ impl ProxyConfig {
port: Some(config.server.port),
client_mss: None,
synlimit: SynLimitMode::default(),
synlimit_seconds: default_synlimit_seconds(),
synlimit_hitcount: default_synlimit_hitcount(),
announce: None,
announce_ip: None,
proxy_protocol: None,
@@ -2202,6 +2216,8 @@ impl ProxyConfig {
port: Some(config.server.port),
client_mss: None,
synlimit: SynLimitMode::default(),
synlimit_seconds: default_synlimit_seconds(),
synlimit_hitcount: default_synlimit_hitcount(),
announce: None,
announce_ip: None,
proxy_protocol: None,