fix peer sync

This commit is contained in:
afeiszli 2022-01-31 17:13:19 -05:00
parent 9614735dca
commit c6252764e8
2 changed files with 20 additions and 2 deletions

View file

@ -371,3 +371,14 @@ func setNetworkServerPeers(serverNode *models.Node) {
logger.Log(1, "could not set peers on network", serverNode.Network, ":", err.Error())
}
}
// ShouldPublishPeerPorts - Gets ports from iface, sets, and returns true if they are different
func ShouldPublishPeerPorts(serverNode *models.Node) bool {
if currentPeersList, err := getSystemPeers(serverNode); err == nil {
if database.SetPeers(currentPeersList, serverNode.Network) {
logger.Log(1, "set new peers on network", serverNode.Network)
return true
}
}
return false
}

View file

@ -17,7 +17,7 @@ import (
"github.com/gravitl/netmaker/servercfg"
)
const KEEPALIVE_TIMEOUT = 60 //timeout in seconds
const KEEPALIVE_TIMEOUT = 10 //timeout in seconds
const MQ_DISCONNECT = 250
// DefaultHandler default message queue handler - only called when GetDebug == true
@ -198,6 +198,13 @@ func Keepalive(ctx context.Context) {
id = servAddr.ID
}
}
serverNode, errN := logic.GetNodeByID(id)
if errN == nil && network.DefaultUDPHolePunch == "yes" && logic.ShouldPublishPeerPorts(&serverNode) {
err = PublishPeerUpdate(&serverNode)
if err != nil {
logger.Log(1, "error publishing udp port updates", err.Error())
}
}
if id == "" {
logger.Log(0, "leader not defined for network", network.NetID)
continue
@ -207,8 +214,8 @@ func Keepalive(ctx context.Context) {
} else {
logger.Log(2, "keepalive sent for network", network.NetID)
}
client.Disconnect(MQ_DISCONNECT)
}
client.Disconnect(MQ_DISCONNECT)
}
}
}