properly fail on version checks
This commit is contained in:
@@ -156,6 +156,12 @@ pub enum Error {
|
||||
|
||||
#[error("no IPR address on selected gateway")]
|
||||
NoIPRAvailable,
|
||||
|
||||
#[error("message version check failed: {0}")]
|
||||
IPRMessageVersionCheckFailed(String),
|
||||
|
||||
#[error("no response id found in connect response")]
|
||||
IPRNoId,
|
||||
}
|
||||
|
||||
impl Error {
|
||||
|
||||
@@ -232,13 +232,16 @@ impl IpMixStream {
|
||||
}
|
||||
Some(Ok(reconstructed)) => {
|
||||
if let Err(e) = check_ipr_message_version(&reconstructed) {
|
||||
error!("Version check failed: {}", e);
|
||||
continue;
|
||||
return Err(Error::IPRMessageVersionCheckFailed(e.to_string()));
|
||||
|
||||
}
|
||||
if let Ok(response) = IpPacketResponse::from_reconstructed_message(&reconstructed) {
|
||||
if response.id() == Some(request_id) {
|
||||
return self.handle_connect_response(response).await;
|
||||
}
|
||||
else {
|
||||
return Err(Error::IPRNoId)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user