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

index 044f2cf6877f84d309f76e53bdbaf3469c1a8f88..7fa20c038088181033bddd828ee124d61c8d8631 100644 (file)
@@ -428,7 +428,7 @@ mod tests {
             io::write_all(socket,
                           "MESSAGE sip:test.com \
                            SIP/2.0\r\nAccept:text/plain\r\nAccept-Encoding:*\r\nAccept-Language:\
-                           en-gb\r\nAlert-Info:<http://www.example.com/sounds/moo.wav>\r\nVia: \
+                           en-gb\r\nAlert-Info:<http://www.example.com/sounds/moo.wav>\r\nAllow:MESSAGE\r\nVia: \
                            localhost\r\n\r\n")
         });
 
index 3f8b08ec76ea4a8639c713dce3c530a65d9e4326..fa4051d75a7d6f036dd157b1f46b93135a20fab7 100644 (file)
@@ -577,10 +577,17 @@ named!(alert_info_header<Vec<AlertParam>>, preceded!(
                tag!(b","),
                alert_param)));
 
+named!(allow_header<Vec<Method>>, preceded!(
+       tag!(b"Allow:"),
+       separated_nonempty_list!(
+               tag!(b","),
+               method)));
+
 named!(pub header<Header>, alt!(
 // RFC 3261 Headers
        accept_header => { |a| Header::Accept(a) } |
        accept_encoding_header => { |a| Header::AcceptEncoding(a) } |
        accept_language_header => { |a| Header::AcceptLanguage(a) } |
-       alert_info_header => { |a| Header::AlertInfo(a) }
+       alert_info_header => { |a| Header::AlertInfo(a) } |
+       allow_header => { |a| Header::Allow(a) }
 ));
index 467ca98fd45c0bb6dda10bc2b4269e4fc01171ac..cc3c842686caf6a6412aff22acba7919bbe0a28d 100644 (file)
@@ -191,6 +191,7 @@ pub enum Header {
     AcceptEncoding(Vec<Encoding>),
     AcceptLanguage(Vec<Language>),
     AlertInfo(Vec<AlertParam>),
+    Allow(Vec<Method>),
     From(Uri),
     To(Uri),
     Extension { name: String, value: String },