Support Expires header
authorRichard Whitehouse <github@richardwhiuk.com>
Sun, 29 Oct 2017 17:37:17 +0000 (17:37 +0000)
committerRichard Whitehouse <github@richardwhiuk.com>
Sun, 29 Oct 2017 17:37:17 +0000 (17:37 +0000)
src/codec.rs
src/parser.rs
src/types.rs

index 1e0b01143096d76f73ca6637574751fe1228d6c6..4c9a348a999cf17ee287d7ca348fc713d6ffa1bc 100644 (file)
@@ -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:<sip:not-in-service-recording@atlanta.com>\r\nVia: \
-                           localhost\r\n\r\n")
+                           GMT\r\nError-Info:<sip:not-in-service-recording@atlanta.\
+                           com>\r\nExpires:30\r\nVia: localhost\r\n\r\n")
         });
 
         let finished = request.and_then(|(socket, _request)| {
index f2f23677b70e3e732f3277d54bc42ef5c2095cbf..6bcb5739b0d8850f92e44ab1021dc7e0e0f9ae07 100644 (file)
@@ -898,6 +898,10 @@ named!(error_info_header<Vec<ErrorUri>>, preceded!(
                tag!(","),
                error_uri)));
 
+named!(expires_header<u32>, preceded!(
+       tag!(b"Expires:"),
+       number));
+
 named!(pub header<Header>, alt!(
 // RFC 3261 Headers
        accept_header => { |a| Header::Accept(a) } |
@@ -917,5 +921,6 @@ named!(pub header<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) }
 ));
index 43243d9a1233aadeeb1cb9aac4e4b50a710e9803..6fab135de8a98a08339ea3c32488d3d9ba155f1c 100644 (file)
@@ -353,6 +353,7 @@ pub enum Header {
     CSeq(u32, Method),
     Date(DateTime),
     ErrorInfo(Vec<ErrorUri>),
+    Expires(u32),
     From(Uri),
     To(Uri),
     Extension { name: String, value: String },