Added a fix to avoid becoming one's own neighbour.

This commit is contained in:
Eichhornchen 2021-01-06 22:04:23 +01:00
parent ab554bb3fe
commit 15917bfb32
2 changed files with 6 additions and 1 deletions

View File

@ -176,6 +176,9 @@ class HelloTLV(TLV):
f"the id {self.source_id}.")
sender.id = self.source_id
if self.source_id == user.id:
sender.marked_as_banned = True
if not sender.active:
sender.id = self.source_id # The sender we are given misses an id
time_hl = time.time()

View File

@ -26,6 +26,7 @@ class Peer:
self.symmetric = False
self.active = False
self.errors = 0
self.marked_as_banned = False
try:
# Resolve DNS as an IPv6
@ -60,7 +61,7 @@ class Peer:
"""
If a client send more than 5 invalid packets, we don't trust it anymore.
"""
return self.errors >= 5
return self.errors >= 5 or self.marked_as_banned
def __repr__(self):
return self.nickname or str(self.id) or str(self.main_address)
@ -79,6 +80,7 @@ class Peer:
self.addresses.update(self.addresses)
self.addresses.update(other.addresses)
self.id = self.id if self.id > 0 else other.id
self.marked_as_banned = other.marked_as_banned
return self