bar.com\r\nCall-Info:<http://wwww.example.com/alice/photo.jpg>;\
purpose=icon\r\nContact:*\r\nContent-Disposition:\
session\r\nContent-Encoding:gzip\r\nContent-Language:\
- en-gb\r\nContent-Length:0\r\nContent-Type:text/plain\r\nVia: \
- localhost\r\n\r\n")
+ en-gb\r\nContent-Length:0\r\nContent-Type:text/plain\r\nCSeq:1 \
+ MESSAGE\r\nVia: localhost\r\n\r\n")
});
let finished = request.and_then(|(socket, _request)| {
alt!(tag!(b"Content-Type:") | tag!(b"c:")),
media_type));
+named!(cseq_header<(u32, Method)>, preceded!(
+ tag!(b"CSeq:"),
+ separated_pair!(
+ number,
+ tag!(" "),
+ method)));
+
named!(pub header<Header>, alt!(
// RFC 3261 Headers
accept_header => { |a| Header::Accept(a) } |
content_encoding_header => { |e| Header::ContentEncoding(e) } |
content_language_header => { |l| Header::ContentLanguage(l) } |
content_length_header => { |l| Header::ContentLength(l) } |
- content_type_header => { |t| Header::ContentType(t) }
+ content_type_header => { |t| Header::ContentType(t) } |
+ cseq_header => { |(c, m)| Header::CSeq(c, m) }
));
ContentLanguage(Vec<LanguageTag>),
ContentLength(u32),
ContentType(MediaType),
+ CSeq(u32, Method),
From(Uri),
To(Uri),
Extension { name: String, value: String },