mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-06 17:29:15 +08:00
adding force peer push every 5 min
This commit is contained in:
60
mq/mq.go
60
mq/mq.go
@@ -242,30 +242,48 @@ func Keepalive(ctx context.Context) {
|
|||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
return
|
return
|
||||||
case <-time.After(time.Second * KEEPALIVE_TIMEOUT):
|
case <-time.After(time.Second * KEEPALIVE_TIMEOUT):
|
||||||
networks, err := logic.GetNetworks()
|
sendPeers()
|
||||||
if err != nil {
|
return
|
||||||
logger.Log(1, "error retrieving networks for keepalive", err.Error())
|
}
|
||||||
}
|
}
|
||||||
for _, network := range networks {
|
}
|
||||||
serverNode, errN := logic.GetNetworkServerLeader(network.NetID)
|
|
||||||
if errN == nil {
|
var counter = make(chan int, 0)
|
||||||
serverNode.SetLastCheckIn()
|
|
||||||
logic.UpdateNode(&serverNode, &serverNode)
|
// sendPeers - retrieve networks, send peer ports to all peers
|
||||||
if network.DefaultUDPHolePunch == "yes" {
|
func sendPeers() {
|
||||||
if logic.ShouldPublishPeerPorts(&serverNode) {
|
var force bool
|
||||||
err = PublishPeerUpdate(&serverNode)
|
var tmpcount = <-counter + 1
|
||||||
if err != nil {
|
counter <- tmpcount
|
||||||
logger.Log(1, "error publishing udp port updates for network", network.NetID)
|
if tmpcount == 5 {
|
||||||
logger.Log(1, errN.Error())
|
force = true
|
||||||
}
|
counter <- 0
|
||||||
}
|
}
|
||||||
|
networks, err := logic.GetNetworks()
|
||||||
|
if err != nil {
|
||||||
|
logger.Log(1, "error retrieving networks for keepalive", err.Error())
|
||||||
|
}
|
||||||
|
for _, network := range networks {
|
||||||
|
serverNode, errN := logic.GetNetworkServerLeader(network.NetID)
|
||||||
|
if errN == nil {
|
||||||
|
serverNode.SetLastCheckIn()
|
||||||
|
logic.UpdateNode(&serverNode, &serverNode)
|
||||||
|
if network.DefaultUDPHolePunch == "yes" {
|
||||||
|
if logic.ShouldPublishPeerPorts(&serverNode) || force {
|
||||||
|
if force {
|
||||||
|
logger.Log(2, "sending scheduled peer update (5 min)")
|
||||||
|
}
|
||||||
|
err = PublishPeerUpdate(&serverNode)
|
||||||
|
if err != nil {
|
||||||
|
logger.Log(1, "error publishing udp port updates for network", network.NetID)
|
||||||
|
logger.Log(1, errN.Error())
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
logger.Log(1, "unable to retrieve leader for network ", network.NetID)
|
|
||||||
logger.Log(1, errN.Error())
|
|
||||||
continue
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
logger.Log(1, "unable to retrieve leader for network ", network.NetID)
|
||||||
|
logger.Log(1, errN.Error())
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -132,7 +132,10 @@ func SetupMQTT(cfg *config.ClientConfig, publish bool) mqtt.Client {
|
|||||||
ncutils.Log("detected broker connection lost, running pull for " + cfg.Node.Network)
|
ncutils.Log("detected broker connection lost, running pull for " + cfg.Node.Network)
|
||||||
_, err := Pull(cfg.Node.Network, true)
|
_, err := Pull(cfg.Node.Network, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ncutils.Log("could not run pull, please restart daemon or examine network connectivity --- " + err.Error())
|
ncutils.Log("could not run pull, server unreachable, restarting daemon in 5 minutes..." + err.Error())
|
||||||
|
time.Sleep(time.Minute * 5)
|
||||||
|
ncutils.Log("restarting netclient")
|
||||||
|
daemon.Restart()
|
||||||
}
|
}
|
||||||
ncutils.Log("connection re-established with mqtt server")
|
ncutils.Log("connection re-established with mqtt server")
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user