aquatic_udp: improve request parse errors, send less error responses

This commit is contained in:
Joakim Frostegård 2021-10-18 02:10:39 +02:00
parent bfab6bb48f
commit f0a15e9b6f
4 changed files with 78 additions and 67 deletions

View file

@ -216,21 +216,18 @@ fn read_requests(
}
}
Err(err) => {
::log::debug!("request_from_bytes error: {:?}", err);
::log::debug!("Request::from_bytes error: {:?}", err);
if let Some(transaction_id) = err.transaction_id {
let opt_message = if err.error.is_some() {
Some("Parse error".into())
} else if let Some(message) = err.message {
Some(message.into())
} else {
None
};
if let Some(message) = opt_message {
if let RequestParseError::Sendable {
connection_id,
transaction_id,
err,
} = err
{
if connections.contains_key(&ConnectionKey::new(connection_id, src)) {
let response = ErrorResponse {
transaction_id,
message,
message: err.right_or("Parse error").into(),
};
local_responses.push((response.into(), src));