http: warn once for chunk extension

Avoids pushing multiple log messages, when the consumer will
only set one app-layer event for the tx

Ticket: 8867
pull/16213/head
Philippe Antoine 2 months ago committed by Victor Julien
parent 4dd7ebf079
commit 72829dbaea

@ -400,10 +400,14 @@ impl ConnectionParser {
let (len, ext) = parse_chunked_length(&data2)?; let (len, ext) = parse_chunked_length(&data2)?;
self.request_chunked_length = len; self.request_chunked_length = len;
if ext { if ext {
htp_warn!( let mut flags = 0; // unused but needed by macro
htp_warn_once!(
self.logger, self.logger,
HtpLogCode::REQUEST_CHUNK_EXTENSION, HtpLogCode::REQUEST_CHUNK_EXTENSION,
"Request chunk extension" "Request chunk extension",
self.request_mut().unwrap().flags,
flags,
HtpFlags::FIELD_REQ_CHUNK_EXTENSION
); );
} }
let len = len.as_ref().ok_or(HtpStatus::ERROR).map_err(|e| { let len = len.as_ref().ok_or(HtpStatus::ERROR).map_err(|e| {

@ -222,10 +222,14 @@ impl ConnectionParser {
Ok((len, ext)) => { Ok((len, ext)) => {
self.response_chunked_length = len; self.response_chunked_length = len;
if ext { if ext {
htp_warn!( let mut flags = 0; // unused but needed by macro
htp_warn_once!(
self.logger, self.logger,
HtpLogCode::RESPONSE_CHUNK_EXTENSION, HtpLogCode::RESPONSE_CHUNK_EXTENSION,
"Response chunk extension" "Response chunk extension",
self.response_mut().unwrap().flags,
flags,
HtpFlags::FIELD_RESP_CHUNK_EXTENSION
); );
} }
// Handle chunk length // Handle chunk length

@ -143,6 +143,10 @@ impl HtpFlags {
pub const HEADERS_TOO_MANY: u64 = 0x0040_0000_0000; pub const HEADERS_TOO_MANY: u64 = 0x0040_0000_0000;
/// 100-Continue already seen. /// 100-Continue already seen.
pub const FIELD_100_CONTINUE: u64 = 0x0080_0000_0000; pub const FIELD_100_CONTINUE: u64 = 0x0080_0000_0000;
/// Request chunk extension, log only once.
pub const FIELD_REQ_CHUNK_EXTENSION: u64 = 0x0100_0000_0000;
/// Response chunk extension, log only once.
pub const FIELD_RESP_CHUNK_EXTENSION: u64 = 0x0200_0000_0000;
} }
#[allow(clippy::upper_case_acronyms)] #[allow(clippy::upper_case_acronyms)]

Loading…
Cancel
Save