From cd72dcad790dba8ce5f46c9b7250bf4a09495c43 Mon Sep 17 00:00:00 2001 From: Egbert Bouman Date: Thu, 20 Feb 2025 23:19:04 +0100 Subject: [PATCH 1/4] Fixed error when adding peers to the routing table --- ipv8/dht/community.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ipv8/dht/community.py b/ipv8/dht/community.py index ba5519748..b6ced4d28 100644 --- a/ipv8/dht/community.py +++ b/ipv8/dht/community.py @@ -373,6 +373,10 @@ def on_node_discovered(self, public_key_bin: bytes, source_address: Address) -> if isinstance(source_address, UDPv6Address) and UDPv6Address not in self.my_peer.addresses: return + # We need to know our own node ID before we can start adding nodes to the routing table + if self.my_estimated_wan in [("::1", 0), ("0.0.0.0", 0)]: + return + # Filter out trackers if source_address not in self.network.blacklist: node = Node(public_key_bin, source_address) From a41cac33c87fa80fa9682186317ad528e715a7a7 Mon Sep 17 00:00:00 2001 From: Egbert Bouman Date: Thu, 20 Feb 2025 23:20:18 +0100 Subject: [PATCH 2/4] Fix for task names with colons --- ipv8/REST/asyncio_endpoint.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ipv8/REST/asyncio_endpoint.py b/ipv8/REST/asyncio_endpoint.py index dba35a167..dca14c01f 100644 --- a/ipv8/REST/asyncio_endpoint.py +++ b/ipv8/REST/asyncio_endpoint.py @@ -203,7 +203,7 @@ async def get_asyncio_tasks(self, _: Request) -> Response: # Add info specific to tasks owner by TaskManager if hasattr(task, "start_time"): # Only TaskManager tasks have a start_time attribute - cls, tsk = name.split(":") + cls, tsk = name.split(":", 1) task_dict.update({"name": tsk, "taskmanager": cls, "start_time": task.start_time}) interval = getattr(task, "interval", None) if interval is not None: From 5ef5f43fef836c8fa45d75d410413206a19a0a95 Mon Sep 17 00:00:00 2001 From: Egbert Bouman Date: Thu, 20 Feb 2025 23:20:58 +0100 Subject: [PATCH 3/4] Remove unnecessary logging from do_circuits --- ipv8/messaging/anonymization/community.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ipv8/messaging/anonymization/community.py b/ipv8/messaging/anonymization/community.py index b95b6a7c2..b6e894569 100644 --- a/ipv8/messaging/anonymization/community.py +++ b/ipv8/messaging/anonymization/community.py @@ -258,6 +258,8 @@ def do_circuits(self) -> None: """ for circuit_length, num_circuits in self.circuits_needed.items(): num_to_build = max(0, num_circuits - len(self.find_circuits(state=None, hops=circuit_length))) + if not num_to_build: + continue self.logger.info("Want %d data circuits of length %d", num_to_build, circuit_length) for _ in range(num_to_build): if not self.create_circuit(circuit_length): From da683deaf4bd9788a9e58b3aa8b9a705a44692f3 Mon Sep 17 00:00:00 2001 From: Egbert Bouman Date: Fri, 21 Feb 2025 08:19:20 +0100 Subject: [PATCH 4/4] Fixed mypy error --- ipv8/messaging/interfaces/lan_addresses/any_os/getaddrinfo.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ipv8/messaging/interfaces/lan_addresses/any_os/getaddrinfo.py b/ipv8/messaging/interfaces/lan_addresses/any_os/getaddrinfo.py index 580bef95f..a7263e58f 100644 --- a/ipv8/messaging/interfaces/lan_addresses/any_os/getaddrinfo.py +++ b/ipv8/messaging/interfaces/lan_addresses/any_os/getaddrinfo.py @@ -1,4 +1,5 @@ import socket +from typing import cast from ..addressprovider import AddressProvider @@ -29,4 +30,4 @@ def get_addresses(self) -> set: except OSError: self.on_exception() - return {i[4][0] for i in interface_specifications if i[4][0].find(".") != -1} + return {i[4][0] for i in interface_specifications if cast(str, i[4][0]).find(".") != -1}