Browse Source

updated logic to add new nodes

0xdcarns 2 years ago
parent
commit
9a7407f635
3 changed files with 9 additions and 9 deletions
  1. 4 4
      controllers/enrollmentkeys.go
  2. 1 1
      logic/hosts.go
  3. 4 4
      logic/peers.go

+ 4 - 4
controllers/enrollmentkeys.go

@@ -197,7 +197,6 @@ func handleHostRegister(w http.ResponseWriter, r *http.Request) {
 		}
 		enrollmentKey.Networks = networksToAdd
 	}
-
 	// ready the response
 	server := servercfg.GetServerInfo()
 	server.TrafficKey = key
@@ -212,10 +211,11 @@ func handleHostRegister(w http.ResponseWriter, r *http.Request) {
 func checkNetRegAndHostUpdate(networks []string, h *models.Host) {
 	// publish host update through MQ
 	for i := range networks {
-		if ok, _ := logic.NetworkExists(networks[i]); ok {
-			newNode, err := logic.UpdateHostNetwork(h, networks[i], true)
+		network := networks[i]
+		if ok, _ := logic.NetworkExists(network); ok {
+			newNode, err := logic.UpdateHostNetwork(h, network, true)
 			if err != nil {
-				logger.Log(0, "failed to add host to network:", h.ID.String(), h.Name, networks[i], err.Error())
+				logger.Log(0, "failed to add host to network:", h.ID.String(), h.Name, network, err.Error())
 				continue
 			}
 			logger.Log(1, "added new node", newNode.ID.String(), "to host", h.Name)

+ 1 - 1
logic/hosts.go

@@ -236,12 +236,12 @@ func AssociateNodeToHost(n *models.Node, h *models.Host) error {
 	if err != nil {
 		return err
 	}
-	h.Nodes = append(h.Nodes, n.ID.String())
 	currentHost, err := GetHost(h.ID.String())
 	if err != nil {
 		return err
 	}
 	h.HostPass = currentHost.HostPass
+	h.Nodes = append(currentHost.Nodes, n.ID.String())
 	return UpsertHost(h)
 }
 

+ 4 - 4
logic/peers.go

@@ -34,7 +34,6 @@ func GetProxyUpdateForHost(host *models.Host) (models.ProxyManagerPayload, error
 		} else {
 			logger.Log(0, "couldn't find relay host for:  ", host.ID.String())
 		}
-
 	}
 	if host.IsRelay {
 		relayedHosts := GetRelayedHosts(host)
@@ -142,9 +141,10 @@ func GetPeerUpdateForHost(network string, host *models.Host, deletedNode *models
 	if deletedNode != nil {
 		deletedNodes = append(deletedNodes, *deletedNode)
 	}
-	logger.Log(1, "peer update for host ", host.ID.String())
+	logger.Log(1, "peer update for host", host.ID.String())
 	peerIndexMap := make(map[string]int)
 	for _, nodeID := range host.Nodes {
+		nodeID := nodeID
 		node, err := GetNodeByID(nodeID)
 		if err != nil {
 			continue
@@ -163,7 +163,7 @@ func GetPeerUpdateForHost(network string, host *models.Host, deletedNode *models
 		}
 		for _, peer := range currentPeers {
 			peer := peer
-			if peer.ID == node.ID {
+			if peer.ID.String() == node.ID.String() {
 				logger.Log(2, "peer update, skipping self")
 				//skip yourself
 				continue
@@ -185,7 +185,7 @@ func GetPeerUpdateForHost(network string, host *models.Host, deletedNode *models
 				continue
 			}
 			if !nodeacls.AreNodesAllowed(nodeacls.NetworkID(node.Network), nodeacls.NodeID(node.ID.String()), nodeacls.NodeID(peer.ID.String())) {
-				log.Println("peer update, skipping node for acl")
+				logger.Log(2, "peer update, skipping node for acl")
 				//skip if not permitted by acl
 				continue
 			}