From: Richard Whitehouse Date: Sun, 29 Oct 2017 17:37:17 +0000 (+0000) Subject: Support Expires header X-Git-Url: https://git.richardwhiuk.com/?a=commitdiff_plain;h=7435f44eb1b0cc06da70b7696ac8aaeb01aed556;p=rust-sip.git Support Expires header --- diff --git a/src/codec.rs b/src/codec.rs index 1e0b011..4c9a348 100644 --- a/src/codec.rs +++ b/src/codec.rs @@ -436,8 +436,8 @@ mod tests { session\r\nContent-Encoding:gzip\r\nContent-Language:\ en-gb\r\nContent-Length:0\r\nContent-Type:text/plain\r\nCSeq:1 \ MESSAGE\r\nDate:Sat, 13 Nov 2010 23:29:00 \ - GMT\r\nError-Info:\r\nVia: \ - localhost\r\n\r\n") + GMT\r\nError-Info:\r\nExpires:30\r\nVia: localhost\r\n\r\n") }); let finished = request.and_then(|(socket, _request)| { diff --git a/src/parser.rs b/src/parser.rs index f2f2367..6bcb573 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -898,6 +898,10 @@ named!(error_info_header>, preceded!( tag!(","), error_uri))); +named!(expires_header, preceded!( + tag!(b"Expires:"), + number)); + named!(pub header
, alt!( // RFC 3261 Headers accept_header => { |a| Header::Accept(a) } | @@ -917,5 +921,6 @@ named!(pub header
, alt!( content_type_header => { |t| Header::ContentType(t) } | cseq_header => { |(c, m)| Header::CSeq(c, m) } | date_header => { |d| Header::Date(d) } | - error_info_header => { |e| Header::ErrorInfo(e) } + error_info_header => { |e| Header::ErrorInfo(e) } | + expires_header => { |e| Header::Expires(e) } )); diff --git a/src/types.rs b/src/types.rs index 43243d9..6fab135 100644 --- a/src/types.rs +++ b/src/types.rs @@ -353,6 +353,7 @@ pub enum Header { CSeq(u32, Method), Date(DateTime), ErrorInfo(Vec), + Expires(u32), From(Uri), To(Uri), Extension { name: String, value: String },