fix limit not working on HttpMessageBody::limit
@@ -289,10 +289,12 @@ impl HttpMessageBody {
if let Some(l) = req.headers().get(&header::CONTENT_LENGTH) {
match l.to_str() {
Ok(s) => match s.parse::<usize>() {
- Ok(l) if l > DEFAULT_CONFIG_LIMIT => {
- err = Some(PayloadError::Overflow)
+ Ok(l) => {
+ if l > DEFAULT_CONFIG_LIMIT {
+ err = Some(PayloadError::Overflow);
+ }
+ length = Some(l)
}
- Ok(l) => length = Some(l),
Err(_) => err = Some(PayloadError::UnknownLength),
},
Err(_) => err = Some(PayloadError::UnknownLength),
@@ -316,9 +318,11 @@ impl HttpMessageBody {
/// Change max size of payload. By default max size is 256kB
pub fn limit(mut self, limit: usize) -> Self {
if let Some(l) = self.length {
- if l > limit {
- self.err = Some(PayloadError::Overflow);
- }
+ self.err = if l > limit {
+ Some(PayloadError::Overflow)
+ } else {
+ None
+ };
}
self.limit = limit;
self
