From: Richard Whitehouse Date: Sat, 4 Nov 2017 19:29:48 +0000 (+0000) Subject: Support WWW-Authenticate header X-Git-Url: https://git.richardwhiuk.com/?a=commitdiff_plain;h=533d714c8e88229ab032de7fd0ac4eb91430b459;p=rust-sip.git Support WWW-Authenticate header --- diff --git a/src/codec.rs b/src/codec.rs index 8eddc2d..8b7cb86 100644 --- a/src/codec.rs +++ b/src/codec.rs @@ -450,7 +450,7 @@ mod tests { 2\r\nTo:;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)| { diff --git a/src/parser.rs b/src/parser.rs index 7728c6c..308291e 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -1219,6 +1219,10 @@ named!(warning_header>, preceded!( tag!(b","), warning))); +named!(www_authenticate_header, preceded!( + tag!(b"WWW-Authenticate:"), + challenge)); + named!(pub header
, alt!( // RFC 3261 Headers accept_header => { |a| Header::Accept(a) } | @@ -1263,5 +1267,6 @@ named!(pub 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) } )); diff --git a/src/types.rs b/src/types.rs index 71c9ce4..f06fefe 100644 --- a/src/types.rs +++ b/src/types.rs @@ -475,5 +475,6 @@ pub enum Header { UserAgent(Vec), Via(Vec), Warning(Vec), + WwwAuthenticate(Challenge), Extension { name: String, value: String }, }