Support WWW-Authenticate header
authorRichard Whitehouse <github@richardwhiuk.com>
Sat, 4 Nov 2017 19:29:48 +0000 (19:29 +0000)
committerRichard Whitehouse <github@richardwhiuk.com>
Sat, 4 Nov 2017 19:29:48 +0000 (19:29 +0000)
src/codec.rs
src/parser.rs
src/types.rs

index 8eddc2d675080ccf5712d43ac6078cabb9f0b00c..8b7cb8660d2d6d1b24814a2ca6fd38f749d14534 100644 (file)
@@ -450,7 +450,7 @@ mod tests {
                            2\r\nTo:<sip:operator@cs.columbia.edu>;tag=287447\r\nUnsupported:\
                            100rel\r\nUser-Agent:rust-sip\r\nVia:SIP/2.0/UDP \
                            pc33.atlanta.com;branch=z9hG4bK776asdhds\r\nWarning:370 devnull \
-                           \"Failure\"\r\n\r\n")
+                           \"Failure\"\r\nWWW-Authenticate:Digest realm=\"biloxi.com\"\r\n\r\n")
         });
 
         let finished = request.and_then(|(socket, _request)| {
index 7728c6c309682bbdfbe2916c2b228920b19f676b..308291ee40cf5213e6afc8da7f63ac8b749314e8 100644 (file)
@@ -1219,6 +1219,10 @@ named!(warning_header<Vec<Warning>>, preceded!(
                tag!(b","),
                warning)));
 
+named!(www_authenticate_header<Challenge>, preceded!(
+       tag!(b"WWW-Authenticate:"),
+       challenge));
+
 named!(pub header<Header>, alt!(
 // RFC 3261 Headers
        accept_header => { |a| Header::Accept(a) } |
@@ -1263,5 +1267,6 @@ named!(pub header<Header>, alt!(
        unsupported_header => { |u| Header::Unsupported(u) } |
        user_agent_header => { |u| Header::UserAgent(u) } |
        via_header => { |v| Header::Via(v) } |
-       warning_header => { |w| Header::Warning(w) }
+       warning_header => { |w| Header::Warning(w) } |
+       www_authenticate_header => { |w| Header::WwwAuthenticate(w) }
 ));
index 71c9ce4e1895681e5d1f318028ed611c5a84c9d2..f06fefe26b5c7a878e811803cfe4d671c6e8e4c2 100644 (file)
@@ -475,5 +475,6 @@ pub enum Header {
     UserAgent(Vec<Server>),
     Via(Vec<Via>),
     Warning(Vec<Warning>),
+    WwwAuthenticate(Challenge),
     Extension { name: String, value: String },
 }