add comment for None variant output of MessageType::decode for Request

This commit is contained in:
fakeshadow 2021-01-27 02:37:38 -08:00
parent a3fd266629
commit 3eca681cc2
2 changed files with 13 additions and 8 deletions

View File

@ -208,8 +208,9 @@ impl MessageType for Request {
trace!("MAX_BUFFER_SIZE unprocessed data reached, closing"); trace!("MAX_BUFFER_SIZE unprocessed data reached, closing");
Err(ParseError::TooLarge) Err(ParseError::TooLarge)
} else { } else {
// Return None to notify more read are needed for parsing request
Ok(None) Ok(None)
} };
} }
} }
}; };
@ -277,14 +278,16 @@ impl MessageType for ResponseHead {
(len, version, status, res.headers.len()) (len, version, status, res.headers.len())
} }
httparse::Status::Partial => return { httparse::Status::Partial => {
return {
if src.len() >= MAX_BUFFER_SIZE { if src.len() >= MAX_BUFFER_SIZE {
error!("MAX_BUFFER_SIZE unprocessed data reached, closing"); error!("MAX_BUFFER_SIZE unprocessed data reached, closing");
Err(ParseError::TooLarge) Err(ParseError::TooLarge)
} else { } else {
Ok(None) Ok(None)
} }
}, }
}
} }
}; };

View File

@ -609,6 +609,8 @@ where
} }
} }
} }
// decode is partial and buffer is not full yet.
// break and wait for more read.
Ok(None) => break, Ok(None) => break,
Err(ParseError::Io(e)) => { Err(ParseError::Io(e)) => {
self.as_mut().client_disconnected(); self.as_mut().client_disconnected();