refactor(h1): deref the read buffer only once in server parse
This commit is contained in:
		| @@ -43,7 +43,8 @@ where | ||||
|             let mut headers: [httparse::Header; MAX_HEADERS] = unsafe { mem::uninitialized() }; | ||||
|             trace!("Request.parse([Header; {}], [u8; {}])", headers.len(), buf.len()); | ||||
|             let mut req = httparse::Request::new(&mut headers); | ||||
|             match req.parse(&buf)? { | ||||
|             let bytes = buf.as_ref(); | ||||
|             match req.parse(bytes)? { | ||||
|                 httparse::Status::Complete(len) => { | ||||
|                     trace!("Request.parse Complete({})", len); | ||||
|                     let method = Method::from_bytes(req.method.unwrap().as_bytes())?; | ||||
| @@ -55,7 +56,7 @@ where | ||||
|                         Version::HTTP_10 | ||||
|                     }; | ||||
|  | ||||
|                     record_header_indices(buf.as_ref(), &req.headers, &mut headers_indices); | ||||
|                     record_header_indices(bytes, &req.headers, &mut headers_indices); | ||||
|                     let headers_len = req.headers.len(); | ||||
|                     (len, subject, version, headers_len) | ||||
|                 } | ||||
| @@ -550,7 +551,7 @@ where | ||||
|             trace!("Response.parse([Header; {}], [u8; {}])", headers.len(), buf.len()); | ||||
|             let mut res = httparse::Response::new(&mut headers); | ||||
|             let bytes = buf.as_ref(); | ||||
|             match try!(res.parse(bytes)) { | ||||
|             match res.parse(bytes)? { | ||||
|                 httparse::Status::Complete(len) => { | ||||
|                     trace!("Response.parse Complete({})", len); | ||||
|                     let status = StatusCode::from_u16(res.code.unwrap())?; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user