mirror of https://github.com/fafhrd91/actix-web
use 32kb max hw buffer
This commit is contained in:
parent
9edd9e1e18
commit
09128d1763
|
@ -203,7 +203,13 @@ impl MessageType for Request {
|
||||||
|
|
||||||
(len, method, uri, version, req.headers.len())
|
(len, method, uri, version, req.headers.len())
|
||||||
}
|
}
|
||||||
httparse::Status::Partial => return Ok(None),
|
httparse::Status::Partial => {
|
||||||
|
return if src.len() >= super::dispatcher::MAX_HW_BUFFER_SIZE {
|
||||||
|
Err(ParseError::TooLarge)
|
||||||
|
} else {
|
||||||
|
Ok(None)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,8 @@ use super::payload::{Payload, PayloadSender, PayloadStatus};
|
||||||
use super::{Message, MessageType};
|
use super::{Message, MessageType};
|
||||||
|
|
||||||
const LW_BUFFER_SIZE: usize = 1024;
|
const LW_BUFFER_SIZE: usize = 1024;
|
||||||
const HW_BUFFER_SIZE: usize = 8192;
|
const HW_BUFFER_SIZE: usize = 1024 * 8;
|
||||||
|
pub(crate) const MAX_HW_BUFFER_SIZE: usize = HW_BUFFER_SIZE * 4;
|
||||||
const MAX_PIPELINED_MESSAGES: usize = 16;
|
const MAX_PIPELINED_MESSAGES: usize = 16;
|
||||||
|
|
||||||
bitflags! {
|
bitflags! {
|
||||||
|
@ -893,13 +894,13 @@ where
|
||||||
{
|
{
|
||||||
let mut read_some = false;
|
let mut read_some = false;
|
||||||
|
|
||||||
// reserve capacity for buffer
|
|
||||||
let remaining = buf.capacity() - buf.len();
|
|
||||||
if remaining < LW_BUFFER_SIZE {
|
|
||||||
buf.reserve(HW_BUFFER_SIZE - remaining);
|
|
||||||
}
|
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
|
// reserve capacity for buffer
|
||||||
|
let remaining = buf.capacity() - buf.len();
|
||||||
|
if remaining < LW_BUFFER_SIZE {
|
||||||
|
buf.reserve(HW_BUFFER_SIZE - remaining);
|
||||||
|
}
|
||||||
|
|
||||||
match actix_codec::poll_read_buf(Pin::new(io), cx, buf) {
|
match actix_codec::poll_read_buf(Pin::new(io), cx, buf) {
|
||||||
Poll::Pending => {
|
Poll::Pending => {
|
||||||
return if read_some { Ok(Some(false)) } else { Ok(None) };
|
return if read_some { Ok(Some(false)) } else { Ok(None) };
|
||||||
|
@ -910,7 +911,7 @@ where
|
||||||
} else {
|
} else {
|
||||||
// If buf is full return but do not disconnect since
|
// If buf is full return but do not disconnect since
|
||||||
// there is more reading to be done
|
// there is more reading to be done
|
||||||
if buf.len() >= HW_BUFFER_SIZE {
|
if buf.len() >= MAX_HW_BUFFER_SIZE {
|
||||||
return Ok(Some(false));
|
return Ok(Some(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue