username=\"Alice\"\r\nCall-ID:f81d4fae-7dec-11d0-a765-00a0c91e6bf6@foo.\
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\nVia: \
- localhost\r\n\r\n")
+ session\r\nContent-Encoding:gzip\r\nContent-Language:\
+ en-gb\r\nContent-Length:0\r\nVia: localhost\r\n\r\n")
});
let finished = request.and_then(|(socket, _request)| {
tag!(b","),
language_tag)));
+named!(content_length_header<u32>, preceded!(
+ alt!(tag!(b"Content-Length:") | tag!(b"l:")),
+ number));
+
named!(pub header<Header>, alt!(
// RFC 3261 Headers
accept_header => { |a| Header::Accept(a) } |
contact_header => { |c| Header::Contact(c) } |
content_disposition_header => { |(t, p)| Header::ContentDisposition(t, p) } |
content_encoding_header => { |e| Header::ContentEncoding(e) } |
- content_language_header => { |l| Header::ContentLanguage(l) }
+ content_language_header => { |l| Header::ContentLanguage(l) } |
+ content_length_header => { |l| Header::ContentLength(l) }
));
ContentDisposition(DispositionType, Vec<DispositionParam>),
ContentEncoding(Vec<ContentCoding>),
ContentLanguage(Vec<LanguageTag>),
+ ContentLength(u32),
From(Uri),
To(Uri),
Extension { name: String, value: String },