diff --git a/logic/peers.go b/logic/peers.go index 01a12acb..b1b1a730 100644 --- a/logic/peers.go +++ b/logic/peers.go @@ -14,6 +14,7 @@ import ( "github.com/gravitl/netmaker/logger" "github.com/gravitl/netmaker/logic/acls/nodeacls" "github.com/gravitl/netmaker/models" + "github.com/gravitl/netmaker/netclient/ncutils" "github.com/gravitl/netmaker/servercfg" "golang.zx2c4.com/wireguard/wgctrl/wgtypes" ) @@ -47,14 +48,15 @@ func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) { continue } if peer.IsRelayed == "yes" { - //skip -- willl be added to relay - continue + if !(node.IsRelay == "yes" && ncutils.StringSliceContains(node.RelayAddrs, peer.PrimaryAddress())) { + //skip -- willl be added to relay + continue + } } if !nodeacls.AreNodesAllowed(nodeacls.NetworkID(node.Network), nodeacls.NodeID(node.ID), nodeacls.NodeID(peer.ID)) { //skip if not permitted by acl continue } - pubkey, err := wgtypes.ParseKey(peer.PublicKey) if err != nil { return models.PeerUpdate{}, err