Browse Source

fix missing peer from relay

Matthew R Kasun 3 years ago
parent
commit
27253d504b
1 changed files with 8 additions and 4 deletions
  1. 8 4
      logic/peers.go

+ 8 - 4
logic/peers.go

@@ -42,10 +42,6 @@ func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) {
 			//skip if not permitted by acl
 			//skip if not permitted by acl
 			continue
 			continue
 		}
 		}
-		if peer.IsRelayed == "yes" {
-			//skip -- willl be added to relay
-			continue
-		}
 		pubkey, err := wgtypes.ParseKey(peer.PublicKey)
 		pubkey, err := wgtypes.ParseKey(peer.PublicKey)
 		if err != nil {
 		if err != nil {
 			return models.PeerUpdate{}, err
 			return models.PeerUpdate{}, err
@@ -241,6 +237,10 @@ func GetAllowedIPs(node, peer *models.Node) []net.IPNet {
 			relayedPeer, err := findNode(ip)
 			relayedPeer, err := findNode(ip)
 			if err != nil {
 			if err != nil {
 				logger.Log(0, "failed to find node for ip ", ip, err.Error())
 				logger.Log(0, "failed to find node for ip ", ip, err.Error())
+				continue
+			}
+			if relayedPeer == nil {
+				continue
 			}
 			}
 			if relayedPeer.ID == node.ID {
 			if relayedPeer.ID == node.ID {
 				//skip self
 				//skip self
@@ -329,6 +329,10 @@ func GetPeerUpdateForRelayedNode(node *models.Node) (models.PeerUpdate, error) {
 			logger.Log(0, "failed to find node for ip", ip.IP.String(), err.Error())
 			logger.Log(0, "failed to find node for ip", ip.IP.String(), err.Error())
 			continue
 			continue
 		}
 		}
+		if target == nil {
+			logger.Log(0, "failed to find node for ip", ip.IP.String())
+			continue
+		}
 		if !nodeacls.AreNodesAllowed(nodeacls.NetworkID(node.Network), nodeacls.NodeID(node.ID), nodeacls.NodeID(target.ID)) {
 		if !nodeacls.AreNodesAllowed(nodeacls.NetworkID(node.Network), nodeacls.NodeID(node.ID), nodeacls.NodeID(target.ID)) {
 			logger.Log(0, "deleting node from relayednode per acl", node.Name, target.Name)
 			logger.Log(0, "deleting node from relayednode per acl", node.Name, target.Name)
 			allowedips = append(allowedips[:i], allowedips[i+1:]...)
 			allowedips = append(allowedips[:i], allowedips[i+1:]...)