HTTP: Skip scanner fail2ban checks when the proxy client IP can't be parsed

This commit is contained in:
mdecimus 2025-09-08 08:15:50 +02:00
parent cd2b958001
commit 6c70872b4d

View file

@ -814,26 +814,25 @@ async fn handle_session<T: SessionStream>(inner: Arc<Inner>, session: SessionDat
.await
{
if http_err.is_parse() {
match inner
.build_server()
.is_scanner_fail2banned(session.remote_ip)
.await
{
Ok(true) => {
trc::event!(
Security(SecurityEvent::ScanBan),
SpanId = session.session_id,
RemoteIp = session.remote_ip,
Reason = http_err.to_string(),
);
return;
}
Ok(false) => {}
Err(err) => {
trc::error!(
err.span_id(session.session_id)
.details("Failed to check for fail2ban")
);
let server = inner.build_server();
if !server.core.jmap.http_use_forwarded {
match server.is_scanner_fail2banned(session.remote_ip).await {
Ok(true) => {
trc::event!(
Security(SecurityEvent::ScanBan),
SpanId = session.session_id,
RemoteIp = session.remote_ip,
Reason = http_err.to_string(),
);
return;
}
Ok(false) => {}
Err(err) => {
trc::error!(
err.span_id(session.session_id)
.details("Failed to check for fail2ban")
);
}
}
}
}