edited peer update

This commit is contained in:
0xdcarns 2022-01-30 11:51:39 -05:00
parent a7015e7260
commit ae4b1bee57
3 changed files with 10 additions and 7 deletions

View file

@ -91,7 +91,7 @@ func UncordonNode(nodeid string) (models.Node, error) {
return node, err
}
// GetPeers - gets the peers of a given node
// GetPeers - gets the peers of a given server node
func GetPeers(node *models.Node) ([]models.Node, error) {
if IsLeader(node) {
setNetworkServerPeers(node)

View file

@ -16,12 +16,12 @@ import (
func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) {
var peerUpdate models.PeerUpdate
var peers []wgtypes.PeerConfig
networkNodes, err := GetNetworkNodes(node.Network)
var serverNodeAddresses = []models.ServerAddr{}
currentPeers, err := GetPeers(node)
if err != nil {
return models.PeerUpdate{}, err
}
var serverNodeAddresses = []models.ServerAddr{}
for _, peer := range networkNodes {
for _, peer := range currentPeers {
if peer.ID == node.ID {
//skip yourself
continue

View file

@ -85,11 +85,11 @@ var UpdateNode mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message)
logger.Log(1, "error unmarshaling payload ", err.Error())
return
}
var shouldUpdatePeers = logic.ShouldPeersUpdate(&currentNode, &newNode)
if err := logic.UpdateNode(&currentNode, &newNode); err != nil {
logger.Log(1, "error saving node", err.Error())
}
if logic.ShouldPeersUpdate(&currentNode, &newNode) {
if shouldUpdatePeers {
if err := PublishPeerUpdate(&newNode); err != nil {
logger.Log(1, "error publishing peer update ", err.Error())
return
@ -111,11 +111,14 @@ func PublishPeerUpdate(newNode *models.Node) error {
}
for _, node := range networkNodes {
if node.IsServer == "yes" {
if err := logic.ServerUpdate(&node, true); err != nil {
logger.Log(1, "failed server peer update on server", node.ID)
}
continue
}
peerUpdate, err := logic.GetPeerUpdate(&node)
if err != nil {
logger.Log(1, "error getting peer update for node ", node.ID, err.Error())
logger.Log(1, "error getting peer update for node", node.ID, err.Error())
continue
}
data, err := json.Marshal(&peerUpdate)