Support Subject header
authorRichard Whitehouse <github@richardwhiuk.com>
Sun, 29 Oct 2017 22:04:05 +0000 (22:04 +0000)
committerRichard Whitehouse <github@richardwhiuk.com>
Sun, 29 Oct 2017 22:08:08 +0000 (22:08 +0000)
src/codec.rs
src/parser.rs
src/types.rs

index 51c802a5d701a04dd7d52a93e5ddc83a92bc78cb..a832bb3feb8a64565296b053aa5d0035d1367cc1 100644 (file)
@@ -445,7 +445,8 @@ mod tests {
                            username=\"Bob\"\r\nProxy-Require:foo\r\nRecord-Route:<sip:server10.\
                            biloxi.com;lr>\r\nReply-To:<sip:bob@biloxi.com>\r\nRequire:\
                            baz\r\nRetry-After:18000;duration=3600\r\nRoute:<sip:bigbox3.site3.\
-                           atlanta.com;lr>\r\nServer:rust-sip tokio\r\nVia: localhost\r\n\r\n")
+                           atlanta.com;lr>\r\nServer:rust-sip tokio\r\nSubject:Foobaz\r\nVia: \
+                           localhost\r\n\r\n")
         });
 
         let finished = request.and_then(|(socket, _request)| {
index 271d44c8aabff7ec50d19df131e77240eaa02533..e5f3db361d9a8ef65f0576e5a5f350d1ea75a25c 100644 (file)
@@ -1104,6 +1104,10 @@ named!(server_header<Vec<Server>>, preceded!(
                tag!(b" "),
                server)));
 
+named!(subject_header<Vec<u8>>, preceded!(
+       alt!(tag!(b"Subject:") | tag!(b"s")),
+       word));
+
 named!(pub header<Header>, alt!(
 // RFC 3261 Headers
        accept_header => { |a| Header::Accept(a) } |
@@ -1140,5 +1144,6 @@ named!(pub header<Header>, alt!(
        require_header => { |r| Header::Require(r) } |
        retry_after_header => { |r| Header::RetryAfter(r) } |
        route_header => { |r| Header::Route(r) } |
-       server_header => { |s| Header::Server(s) }
+       server_header => { |s| Header::Server(s) } |
+       subject_header => { |s| Header::Subject(s) }
 ));
index 4b39daf9bf9969e4366a5c5dd221ded7235b2524..fe88f44ac3b02e1a3710109faabb54052a13991f 100644 (file)
@@ -426,6 +426,7 @@ pub enum Header {
     RetryAfter(RetryAfter),
     Route(Vec<Route>),
     Server(Vec<Server>),
+    Subject(Vec<u8>),
     To(Uri),
     Extension { name: String, value: String },
 }