micro_http: adjust match on header fields
Use case-insensitive check since some http clients use lower case headers. Signed-off-by: Bob Potter <bobby.potter@gmail.com> Signed-off-by: YUAN LYU <lyuyuan92@gmail.com>
This commit is contained in:
committed by
Adrian Catangiu
parent
59ab64440a
commit
4ee7142098
@@ -32,13 +32,14 @@ impl Header {
|
||||
}
|
||||
|
||||
fn try_from(string: &[u8]) -> Result<Self, RequestError> {
|
||||
if let Ok(utf8_string) = String::from_utf8(string.to_vec()) {
|
||||
if let Ok(mut utf8_string) = String::from_utf8(string.to_vec()) {
|
||||
utf8_string.make_ascii_lowercase();
|
||||
match utf8_string.trim() {
|
||||
"Content-Length" => Ok(Header::ContentLength),
|
||||
"Content-Type" => Ok(Header::ContentType),
|
||||
"Expect" => Ok(Header::Expect),
|
||||
"Transfer-Encoding" => Ok(Header::TransferEncoding),
|
||||
"Server" => Ok(Header::Server),
|
||||
"content-length" => Ok(Header::ContentLength),
|
||||
"content-type" => Ok(Header::ContentType),
|
||||
"expect" => Ok(Header::Expect),
|
||||
"transfer-encoding" => Ok(Header::TransferEncoding),
|
||||
"server" => Ok(Header::Server),
|
||||
_ => Err(RequestError::InvalidHeader),
|
||||
}
|
||||
} else {
|
||||
@@ -403,5 +404,8 @@ mod tests {
|
||||
|
||||
let header = Header::try_from(b"Transfer-Encoding").unwrap();
|
||||
assert_eq!(header.raw(), b"Transfer-Encoding");
|
||||
|
||||
let header = Header::try_from(b"content-length").unwrap();
|
||||
assert_eq!(header.raw(), b"Content-Length");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user