rust/sip: store response headers

To match on response SIP headers, those headers must be stored.

Ticket #6374
pull/11809/head
Giuseppe Longo 1 year ago committed by Victor Julien
parent cfb793ce28
commit fbc3cd1b3f

@ -52,7 +52,7 @@ pub struct Response {
pub version: String, pub version: String,
pub code: String, pub code: String,
pub reason: String, pub reason: String,
pub headers: HashMap<String, Vec<String>>,
pub response_line_len: u16, pub response_line_len: u16,
pub headers_len: u16, pub headers_len: u16,
pub body_offset: 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 (i, reason) = parse_reason(i)?;
let (hi, _) = crlf(i)?; let (hi, _) = crlf(i)?;
let response_line_len = oi.len() - hi.len(); 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 headers_len = hi.len() - phi.len();
let (bi, _) = crlf(phi)?; let (bi, _) = crlf(phi)?;
let body_offset = oi.len() - bi.len(); let body_offset = oi.len() - bi.len();
@ -162,6 +162,7 @@ pub fn sip_parse_response(oi: &[u8]) -> IResult<&[u8], Response> {
version, version,
code: code.into(), code: code.into(),
reason: reason.into(), reason: reason.into(),
headers,
response_line_len: response_line_len as u16, response_line_len: response_line_len as u16,
headers_len: headers_len as u16, headers_len: headers_len as u16,

Loading…
Cancel
Save