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()) 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" "github.com/gravitl/netmaker/servercfg"
) )
const KEEPALIVE_TIMEOUT = 60 //timeout in seconds const KEEPALIVE_TIMEOUT = 10 //timeout in seconds
const MQ_DISCONNECT = 250 const MQ_DISCONNECT = 250
// DefaultHandler default message queue handler - only called when GetDebug == true // DefaultHandler default message queue handler - only called when GetDebug == true
@@ -198,6 +198,13 @@ func Keepalive(ctx context.Context) {
id = servAddr.ID 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 == "" { if id == "" {
logger.Log(0, "leader not defined for network", network.NetID) logger.Log(0, "leader not defined for network", network.NetID)
continue continue
@@ -207,8 +214,8 @@ func Keepalive(ctx context.Context) {
} else { } else {
logger.Log(2, "keepalive sent for network", network.NetID) logger.Log(2, "keepalive sent for network", network.NetID)
} }
client.Disconnect(MQ_DISCONNECT)
} }
client.Disconnect(MQ_DISCONNECT)
} }
} }
} }