fix punishment

This commit is contained in:
John Smith 2023-07-17 17:51:05 -04:00
parent 6ee389eb34
commit 7658e2cb42
3 changed files with 12 additions and 0 deletions

View File

@ -315,6 +315,12 @@ impl NetworkConnection {
return RecvLoopAction::Finish;
}
// Punish invalid messages
if v.is_invalid_message() {
address_filter.punish_ip_addr(peer_address.to_socket_addr().ip());
return RecvLoopAction::Finish;
}
// Log other network results
let mut message = network_result_value_or_log!(v => [ format!(": protocol_connection={:?}", protocol_connection) ] {
return RecvLoopAction::Finish;

View File

@ -66,6 +66,9 @@ impl NetworkManager {
// Run the rolling transfers task
self.unlocked_inner.rolling_transfers_task.tick().await?;
// Run the address filter task
self.unlocked_inner.address_filter_task.tick().await?;
// Run the routing table tick
routing_table.tick().await?;

View File

@ -202,6 +202,9 @@ impl<T> NetworkResult<T> {
pub fn is_already_exists(&self) -> bool {
matches!(self, Self::AlreadyExists(_))
}
pub fn is_invalid_message(&self) -> bool {
matches!(self, Self::InvalidMessage(_))
}
pub fn is_value(&self) -> bool {
matches!(self, Self::Value(_))
}