Просмотр исходного кода

net: Mark peer as rejected if we have missing dispatchers for certain packets.

parazyd 2 лет назад
Родитель
Сommit
ee47552eee
1 измененных файлов с 10 добавлено и 0 удалено
  1. 10 0
      src/net/channel.rs

+ 10 - 0
src/net/channel.rs

@@ -293,6 +293,16 @@ impl Channel {
                 // If we're getting messages without dispatchers, it's spam.
                 Err(Error::MissingDispatcher) => {
                     debug!(target: "net::channel::main_receive_loop()", "Stopping channel {:?}", self);
+
+                    // We will reject further connections from this peer
+                    self.session
+                        .upgrade()
+                        .unwrap()
+                        .p2p()
+                        .hosts()
+                        .mark_rejected(self.address())
+                        .await;
+
                     return Err(Error::ChannelStopped)
                 }
                 Err(_) => unreachable!("You added a new error in notify()"),