X-Git-Url: https://git.mxchange.org/?p=quix0rs-apt-p2p.git;a=blobdiff_plain;f=apt_p2p_Khashmir%2Fktable.py;h=199c6266f445ac603cf8bbcf96a6193c6cf8f3fe;hp=24ea93fc2ecce34a22cbef71d1e4d1b876a6c0ed;hb=6d242a16df6b2f911b8fc7079219b38b26f23ecb;hpb=650175d1ea27497e1a6f5dfb6f9493cad9c492a4 diff --git a/apt_p2p_Khashmir/ktable.py b/apt_p2p_Khashmir/ktable.py index 24ea93f..199c626 100644 --- a/apt_p2p_Khashmir/ktable.py +++ b/apt_p2p_Khashmir/ktable.py @@ -95,6 +95,18 @@ class KTable: nodes.sort(lambda a, b, num=num: cmp(num ^ a.num, num ^ b.num)) return nodes[:K] + def touch(self, id): + """Mark a bucket as having been looked up. + + @type id: C{string} or C{int} or L{node.Node} + @param id: the ID in the bucket that was accessed + """ + # Get the bucket number from the input + num = self._nodeNum(id) + i = self._bucketIndexForInt(num) + + self.buckets[i].touch() + def _mergeBucket(self, i): """Merge unneeded buckets after removing a node. @@ -190,7 +202,6 @@ class KTable: # note that we removed the original and replaced it with the new one # utilizing this nodes new contact info self.buckets[i].add(node) - self.buckets[i].touch() return True # We don't have this node, check to see if the bucket is full @@ -199,7 +210,6 @@ class KTable: if contacted: node.updateLastSeen() self.buckets[i].add(node) - self.buckets[i].touch() log.msg('Added node to routing table: %s/%s' % (node.host, node.port)) return True return False @@ -242,7 +252,6 @@ class KTable: except ValueError: return None else: - self.buckets[i].touch() return tstamp def invalidateNode(self, n):