diff --git a/logic/peers.go b/logic/peers.go index f23b542f..49de0df1 100644 --- a/logic/peers.go +++ b/logic/peers.go @@ -42,10 +42,6 @@ func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) { //skip if not permitted by acl continue } - if peer.IsRelayed == "yes" { - //skip -- willl be added to relay - continue - } pubkey, err := wgtypes.ParseKey(peer.PublicKey) if err != nil { return models.PeerUpdate{}, err @@ -241,6 +237,10 @@ func GetAllowedIPs(node, peer *models.Node) []net.IPNet { relayedPeer, err := findNode(ip) if err != nil { logger.Log(0, "failed to find node for ip ", ip, err.Error()) + continue + } + if relayedPeer == nil { + continue } if relayedPeer.ID == node.ID { //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()) 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)) { logger.Log(0, "deleting node from relayednode per acl", node.Name, target.Name) allowedips = append(allowedips[:i], allowedips[i+1:]...)