diff options
author | Gregory Maxwell <greg@xiph.org> | 2018-12-11 21:07:36 +0000 |
---|---|---|
committer | Gregory Maxwell <greg@xiph.org> | 2019-01-22 21:10:48 +0000 |
commit | 0297be61acdf1cdd5f56c8371d1718d08229d9b3 (patch) | |
tree | add640a4a3c30cb470c7259b2c1018ee94b9a892 /src/banman.h | |
parent | 9bad1e0b22c1065c5ab73d74ac96747ecf33dcdf (diff) |
Allow connections from misbehavior banned peers.
This allows incoming connections from peers which are only banned
due to an automatic misbehavior ban if doing so won't fill inbound.
These peers are preferred for eviction when inbound fills, but may
still be kept if they fall into the protected classes. This
eviction preference lasts the entire life of the connection even
if the ban expires.
If they misbehave again they'll still get disconnected.
The main purpose of banning on misbehavior is to prevent our
connections from being wasted on unhelpful peers such as ones
running incompatible consensus rules. For inbound peers this
can be better accomplished with eviction preferences.
A secondary purpose was to reduce resource waste from repeated
abuse but virtually any attacker can get a nearly unlimited
supply of addresses, so disconnection is about the best we can
do.
Diffstat (limited to 'src/banman.h')
-rw-r--r-- | src/banman.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/banman.h b/src/banman.h index 69f62be368..a1a00309dd 100644 --- a/src/banman.h +++ b/src/banman.h @@ -42,6 +42,7 @@ public: void Ban(const CNetAddr& net_addr, const BanReason& ban_reason, int64_t ban_time_offset = 0, bool since_unix_epoch = false); void Ban(const CSubNet& sub_net, const BanReason& ban_reason, int64_t ban_time_offset = 0, bool since_unix_epoch = false); void ClearBanned(); + int IsBannedLevel(CNetAddr net_addr); bool IsBanned(CNetAddr net_addr); bool IsBanned(CSubNet sub_net); bool Unban(const CNetAddr& net_addr); |