publish peers on every keepalive

This commit is contained in:
afeiszli
2022-02-01 14:01:13 -05:00
parent 8c0341391c
commit d64cc1f39e
2 changed files with 8 additions and 5 deletions

View File

@@ -18,7 +18,7 @@ import (
"github.com/gravitl/netmaker/serverctl"
)
const KEEPALIVE_TIMEOUT = 10 //timeout in seconds
const KEEPALIVE_TIMEOUT = 60 //timeout in seconds
const MQ_DISCONNECT = 250
// DefaultHandler default message queue handler - only called when GetDebug == true
@@ -125,7 +125,7 @@ func PublishPeerUpdate(newNode *models.Node) error {
if err = publish(&node, fmt.Sprintf("peers/%s/%s", node.Network, node.ID), data); err != nil {
logger.Log(1, "failed to publish peer update for node", node.ID)
} else {
logger.Log(1, fmt.Sprintf("sent peer update for network, %s and node, %s", node.Network, node.Name))
logger.Log(1, fmt.Sprintf("sent peer update for node %s on network: %s ", node.Name, node.Network))
}
}
return nil
@@ -202,7 +202,10 @@ func Keepalive(ctx context.Context) {
}
}
serverNode, errN := logic.GetNodeByID(id)
if errN == nil && network.DefaultUDPHolePunch == "yes" && logic.ShouldPublishPeerPorts(&serverNode) {
if errN == nil {
if network.DefaultUDPHolePunch == "yes" {
logic.ShouldPublishPeerPorts(&serverNode)
}
err = PublishPeerUpdate(&serverNode)
if err != nil {
logger.Log(1, "error publishing udp port updates", err.Error())

View File

@@ -65,7 +65,7 @@ func SetupMQTT(cfg *config.ClientConfig) mqtt.Client {
opts := mqtt.NewClientOptions()
for _, server := range cfg.Node.NetworkSettings.DefaultServerAddrs {
if server.Address != "" && server.IsLeader {
ncutils.Log(fmt.Sprintf("adding server (%s) to listen on network %s", server.Address, cfg.Node.Network))
// ncutils.Log(fmt.Sprintf("adding server (%s) to listen on network %s", server.Address, cfg.Node.Network))
opts.AddBroker(server.Address + ":1883")
break
}
@@ -335,7 +335,7 @@ func MonitorKeepalive(ctx context.Context, client mqtt.Client, cfg *config.Clien
return
case <-time.After(time.Second * 150):
if time.Since(keepalive[id]) > time.Second*200 { // more than 3+ minutes
ncutils.Log("server keepalive not recieved in more than minutes, resubscribe to message queue")
ncutils.Log("server keepalive not recieved recently, resubscribe to message queue")
err := Resubscribe(client, cfg)
if err != nil {
ncutils.Log("closing " + err.Error())