|
@@ -46,7 +46,7 @@ func CheckZombies(newnode *models.Node, mac net.HardwareAddr) {
|
|
}
|
|
}
|
|
|
|
|
|
// ManageZombies - goroutine which adds/removes/deletes nodes from the zombie node quarantine list
|
|
// ManageZombies - goroutine which adds/removes/deletes nodes from the zombie node quarantine list
|
|
-func ManageZombies(ctx context.Context) {
|
|
|
|
|
|
+func ManageZombies(ctx context.Context, peerUpdate chan *models.Node) {
|
|
logger.Log(2, "Zombie management started")
|
|
logger.Log(2, "Zombie management started")
|
|
InitializeZombies()
|
|
InitializeZombies()
|
|
for {
|
|
for {
|
|
@@ -81,11 +81,13 @@ func ManageZombies(ctx context.Context) {
|
|
zombies = append(zombies[:i], zombies[i+1:]...)
|
|
zombies = append(zombies[:i], zombies[i+1:]...)
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
- if time.Since(node.LastCheckIn) > time.Minute*ZOMBIE_DELETE_TIME {
|
|
|
|
|
|
+ if time.Since(node.LastCheckIn) > time.Minute*ZOMBIE_DELETE_TIME || time.Now().After(node.ExpirationDateTime) {
|
|
if err := DeleteNode(&node, true); err != nil {
|
|
if err := DeleteNode(&node, true); err != nil {
|
|
logger.Log(1, "error deleting zombie node", zombies[i].String(), err.Error())
|
|
logger.Log(1, "error deleting zombie node", zombies[i].String(), err.Error())
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
|
|
+ node.Action = models.NODE_DELETE
|
|
|
|
+ peerUpdate <- &node
|
|
logger.Log(1, "deleting zombie node", node.ID.String())
|
|
logger.Log(1, "deleting zombie node", node.ID.String())
|
|
zombies = append(zombies[:i], zombies[i+1:]...)
|
|
zombies = append(zombies[:i], zombies[i+1:]...)
|
|
}
|
|
}
|