Skip to content
Snippets Groups Projects
Commit aee13270 authored by inso's avatar inso
Browse files

Fix bug where nodes would appear twice (#163)

parent 05600ace
No related branches found
No related tags found
No related merge requests found
......@@ -200,12 +200,12 @@ class Network(QObject):
node.refresh()
logging.debug("End of network discovery")
@pyqtSlot(Peer)
def handle_new_node(self, peer):
@pyqtSlot(Peer, str)
def handle_new_node(self, peer, pubkey):
pubkeys = [n.pubkey for n in self.nodes]
if peer.pubkey not in pubkeys:
logging.debug("New node found : {0}".format(peer.pubkey[:5]))
node = Node.from_peer(self.network_manager, self.currency, peer)
node = Node.from_peer(self.network_manager, self.currency, peer, pubkey)
self.add_node(node)
self.nodes_changed.emit()
......
......@@ -33,7 +33,7 @@ class Node(QObject):
CORRUPTED = 4
changed = pyqtSignal()
neighbour_found = pyqtSignal(Peer)
neighbour_found = pyqtSignal(Peer, str)
def __init__(self, network_manager, currency, endpoints, uid, pubkey, block,
state, last_change, last_merkle, software, version):
......@@ -97,7 +97,7 @@ class Node(QObject):
return None
@classmethod
def from_peer(cls, network_manager, currency, peer):
def from_peer(cls, network_manager, currency, peer, pubkey):
"""
Factory method to get a node from a peer document.
......@@ -109,7 +109,7 @@ class Node(QObject):
if peer.currency != currency:
raise InvalidNodeCurrency(peer.currency, currency)
node = cls(network_manager, peer.currency, peer.endpoints, "", "", 0,
node = cls(network_manager, peer.currency, peer.endpoints, "", pubkey, 0,
Node.ONLINE, time.time(),
{'root': "", 'leaves': []},
"", "")
......@@ -450,7 +450,8 @@ class Node(QObject):
leaf_data = json.loads(strdata)
doc = Peer.from_signed_raw("{0}{1}\n".format(leaf_data['leaf']['value']['raw'],
leaf_data['leaf']['value']['signature']))
self.neighbour_found.emit(doc)
pubkey = leaf_data['leaf']['value']['pubkey']
self.neighbour_found.emit(doc, pubkey)
else:
logging.debug("Error in leaf reply")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment