]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust/sip: store response headers
authorGiuseppe Longo <giuseppe@glongo.it>
Fri, 15 Sep 2023 07:23:54 +0000 (09:23 +0200)
committerVictor Julien <victor@inliniac.net>
Sun, 22 Sep 2024 04:45:36 +0000 (06:45 +0200)
To match on response SIP headers, those headers must be stored.

Ticket #6374

rust/src/sip/parser.rs

index 784469de35abf50acc5c21834b328fe6ad480f2d..bc66640da62e6f0b2620ea824a6dee849a76dcbe 100644 (file)
@@ -52,7 +52,7 @@ pub struct Response {
     pub version: String,
     pub code: String,
     pub reason: String,
-
+    pub headers: HashMap<String, Vec<String>>,
     pub response_line_len: u16,
     pub headers_len: u16,
     pub body_offset: u16,
@@ -151,7 +151,7 @@ pub fn sip_parse_response(oi: &[u8]) -> IResult<&[u8], Response> {
     let (i, reason) = parse_reason(i)?;
     let (hi, _) = crlf(i)?;
     let response_line_len = oi.len() - hi.len();
-    let (phi, _headers) = parse_headers(hi)?;
+    let (phi, headers) = parse_headers(hi)?;
     let headers_len = hi.len() - phi.len();
     let (bi, _) = crlf(phi)?;
     let body_offset = oi.len() - bi.len();
@@ -162,6 +162,7 @@ pub fn sip_parse_response(oi: &[u8]) -> IResult<&[u8], Response> {
             version,
             code: code.into(),
             reason: reason.into(),
+            headers,
 
             response_line_len: response_line_len as u16,
             headers_len: headers_len as u16,