X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=apt_p2p_Khashmir%2Fkhashmir.py;h=f8c718fc3e549c6bb2b94c71fc3dbfaaefca7afd;hb=23f841b6360b9968d5dad2ef94f4311670375796;hp=48a0c0c5ee6801d07cfdb163a54d7f89297bea1e;hpb=80f92d033a70cb932d76768e96c681475031d7b7;p=quix0rs-apt-p2p.git diff --git a/apt_p2p_Khashmir/khashmir.py b/apt_p2p_Khashmir/khashmir.py index 48a0c0c..f8c718f 100644 --- a/apt_p2p_Khashmir/khashmir.py +++ b/apt_p2p_Khashmir/khashmir.py @@ -13,6 +13,7 @@ import os from twisted.internet.defer import Deferred from twisted.internet import protocol, reactor +from twisted.python import log from twisted.trial import unittest from db import DB @@ -208,11 +209,13 @@ class KhashmirBase(protocol.Factory): (datetime.now() - old.lastSeen) > timedelta(seconds=self.config['MIN_PING_INTERVAL'])): - def _staleNodeHandler(oldnode = old, newnode = node): + def _staleNodeHandler(err, oldnode = old, newnode = node, self = self): """The pinged node never responded, so replace it.""" + log.msg("ping failed (%s) %s/%s" % (self.config['PORT'], oldnode.host, oldnode.port)) + log.err(err) self.table.replaceStaleNode(oldnode, newnode) - def _notStaleNodeHandler(dict, old=old): + def _notStaleNodeHandler(dict, old=old, self=self): """Got a pong from the old node, so update it.""" dict = dict['rsp'] if dict['id'] == old.id: @@ -244,9 +247,11 @@ class KhashmirBase(protocol.Factory): if callback: callback((dict['rsp']['ip_addr'], dict['rsp']['port'])) - def _defaultPong(err, node=node, table=self.table, callback=callback, errback=errback): + def _defaultPong(err, node=node, self=self, callback=callback, errback=errback): """Error occurred, fail node and errback or callback with error.""" - table.nodeFailed(node) + log.msg("join failed (%s) %s/%s" % (self.config['PORT'], node.host, node.port)) + log.err(err) + self.table.nodeFailed(node) if errback: errback() elif callback: @@ -301,7 +306,7 @@ class KhashmirBase(protocol.Factory): def getStats(self): """Gather the statistics for the DHT.""" - return self.stats.gather() + return self.stats.formatHTML() #{ Remote interface def krpc_ping(self, id, _krpc_sender):