Browse Source

edited peer update

0xdcarns 3 years ago
parent
commit
ae4b1bee57
3 changed files with 10 additions and 7 deletions
  1. 1 1
      logic/nodes.go
  2. 3 3
      logic/peers.go
  3. 6 3
      mq/mq.go

+ 1 - 1
logic/nodes.go

@@ -91,7 +91,7 @@ func UncordonNode(nodeid string) (models.Node, error) {
 	return node, err
 	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) {
 func GetPeers(node *models.Node) ([]models.Node, error) {
 	if IsLeader(node) {
 	if IsLeader(node) {
 		setNetworkServerPeers(node)
 		setNetworkServerPeers(node)

+ 3 - 3
logic/peers.go

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

+ 6 - 3
mq/mq.go

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