mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-26 06:36:43 +00:00
kademlia: timer fix
This commit is contained in:
parent
7925859193
commit
bb27dc06b9
1 changed files with 8 additions and 5 deletions
|
|
@ -183,7 +183,7 @@ func (self *KadDb) findBest(bucketSize int, binsize func(int) int) (node *NodeRe
|
||||||
defer self.lock.Unlock()
|
defer self.lock.Unlock()
|
||||||
self.lock.Lock()
|
self.lock.Lock()
|
||||||
|
|
||||||
var interval int64
|
var interval time.Duration
|
||||||
var found bool
|
var found bool
|
||||||
for rounds := 1; rounds <= bucketSize; rounds++ {
|
for rounds := 1; rounds <= bucketSize; rounds++ {
|
||||||
ROUND:
|
ROUND:
|
||||||
|
|
@ -220,10 +220,13 @@ func (self *KadDb) findBest(bucketSize int, binsize func(int) int) (node *NodeRe
|
||||||
|
|
||||||
// if node is scheduled to connect
|
// if node is scheduled to connect
|
||||||
if time.Time(node.After).Before(time.Now()) {
|
if time.Time(node.After).Before(time.Now()) {
|
||||||
|
glog.V(logger.Debug).Infof("[KΛÐ]: last seen %v ago", node.Seen)
|
||||||
|
|
||||||
// if checked longer than purge interval
|
// if checked longer than purge interval
|
||||||
if time.Time(node.Seen).Add(self.purgeInterval).Before(time.Now()) {
|
period := time.Since(time.Time(node.Seen))
|
||||||
// delete node
|
if period > self.purgeInterval {
|
||||||
|
glog.V(logger.Debug).Infof("[KΛÐ]: last seen %v ago", node.Seen)
|
||||||
|
// delete nodes
|
||||||
purge = append(purge, n)
|
purge = append(purge, n)
|
||||||
glog.V(logger.Debug).Infof("[KΛÐ]: inactive node record %v (PO%03d:%d) last check: %v, next check: %v", node.Addr, po, n, node.Seen, node.After)
|
glog.V(logger.Debug).Infof("[KΛÐ]: inactive node record %v (PO%03d:%d) last check: %v, next check: %v", node.Addr, po, n, node.Seen, node.After)
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -231,8 +234,8 @@ func (self *KadDb) findBest(bucketSize int, binsize func(int) int) (node *NodeRe
|
||||||
if (node.After == Time(time.Time{})) {
|
if (node.After == Time(time.Time{})) {
|
||||||
node.After = Time(time.Now().Add(self.initialRetryInterval))
|
node.After = Time(time.Now().Add(self.initialRetryInterval))
|
||||||
} else {
|
} else {
|
||||||
interval = delta * int64(self.connRetryExp)
|
interval = time.Duration(delta * int64(self.connRetryExp))
|
||||||
node.After = Time(time.Unix(time.Now().Unix()+interval, 0))
|
node.After = Time(time.Now().Add(interval))
|
||||||
}
|
}
|
||||||
|
|
||||||
glog.V(logger.Debug).Infof("[KΛÐ]: serve node record %v (PO%03d:%d), last check: %v, next check: %v", node.Addr, po, n, node.Seen, node.After)
|
glog.V(logger.Debug).Infof("[KΛÐ]: serve node record %v (PO%03d:%d), last check: %v, next check: %v", node.Addr, po, n, node.Seen, node.After)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue