From: Cameron Dale Date: Sun, 22 Jun 2008 06:55:36 +0000 (-0700) Subject: Make sure bad nodes don't get added to the routing table. X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=8115337306f4d45abaf92719f05adab4d011851a;p=quix0rs-apt-p2p.git Make sure bad nodes don't get added to the routing table. --- diff --git a/apt_p2p_Khashmir/actions.py b/apt_p2p_Khashmir/actions.py index 8542706..883bccb 100644 --- a/apt_p2p_Khashmir/actions.py +++ b/apt_p2p_Khashmir/actions.py @@ -191,21 +191,22 @@ class ActionBase: def gotResponse(self, dict, node): """Receive a response from a remote node.""" - if node.id != self.caller.node.id: - reactor.callLater(0, self.caller.insertNode, node) - if self.finished or self.answered.has_key(node.id): + if self.finished or self.answered.has_key(node.id) or self.failed.has_key(node.id): # a day late and a dollar short return try: # Process the response self.processResponse(dict) - self.answered[node.id] = 1 except Exception, e: # Unexpected error with the response log.msg("action %s failed on %s/%s: %r" % (self.action, node.host, node.port, e)) if node.id != self.caller.node.id: self.caller.nodeFailed(node) self.failed[node.id] = 1 + else: + self.answered[node.id] = 1 + if node.id != self.caller.node.id: + reactor.callLater(0, self.caller.insertNode, node) if self.outstanding.has_key(node.id): self.outstanding_results -= self.outstanding[node.id] del self.outstanding[node.id]