X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=apt_p2p_Khashmir%2Fkhashmir.py;h=580f0f0e16b5482ef0ee1149b41135c325a8a4b5;hb=ef79e4cb347b1fbd7df95dcd717cfb7e3121ae9d;hp=c5b199a25614e4fc229d7b057df925ea1b877333;hpb=2f3c17ab7b51cbad0abf11fa66f6cafcb5a41c5e;p=quix0rs-apt-p2p.git diff --git a/apt_p2p_Khashmir/khashmir.py b/apt_p2p_Khashmir/khashmir.py index c5b199a..580f0f0 100644 --- a/apt_p2p_Khashmir/khashmir.py +++ b/apt_p2p_Khashmir/khashmir.py @@ -198,14 +198,16 @@ class KhashmirBase(protocol.Factory): (datetime.now() - old.lastSeen) > timedelta(seconds=self.config['MIN_PING_INTERVAL'])): - def _staleNodeHandler(err, oldnode = old, newnode = node, self = self): + def _staleNodeHandler(err, oldnode = old, newnode = node, self = self, start = datetime.now()): """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.stats.completedAction('ping', start) self.table.replaceStaleNode(oldnode, newnode) - def _notStaleNodeHandler(dict, old=old, self=self): + def _notStaleNodeHandler(dict, old = old, self = self, start = datetime.now()): """Got a pong from the old node, so update it.""" + self.stats.completedAction('ping', start) if dict['id'] == old.id: self.table.justSeenNode(old.id) @@ -228,17 +230,19 @@ class KhashmirBase(protocol.Factory): (optional, defaults to calling the callback with None) """ - def _pongHandler(dict, node=node, self=self, callback=callback): + def _pongHandler(dict, node=node, self=self, callback=callback, start = datetime.now()): """Node responded properly, callback with response.""" n = self.Node(dict['id'], dict['_krpc_sender'][0], dict['_krpc_sender'][1]) + self.stats.completedAction('join', start) self.insertNode(n) if callback: callback((dict['ip_addr'], dict['port'])) - def _defaultPong(err, node=node, self=self, callback=callback, errback=errback): + def _defaultPong(err, node=node, self=self, callback=callback, errback=errback, start = datetime.now()): """Error occurred, fail node and errback or callback with error.""" log.msg("join failed (%s) %s/%s" % (self.config['PORT'], node.host, node.port)) log.err(err) + self.stats.completedAction('join', start) self.table.nodeFailed(node) if errback: errback()