adding check for relay

This commit is contained in:
afeiszli 2022-06-14 16:48:39 -04:00
parent da8bafc35f
commit f632f043fe

View file

@ -14,6 +14,7 @@ import (
"github.com/gravitl/netmaker/logger" "github.com/gravitl/netmaker/logger"
"github.com/gravitl/netmaker/logic/acls/nodeacls" "github.com/gravitl/netmaker/logic/acls/nodeacls"
"github.com/gravitl/netmaker/models" "github.com/gravitl/netmaker/models"
"github.com/gravitl/netmaker/netclient/ncutils"
"github.com/gravitl/netmaker/servercfg" "github.com/gravitl/netmaker/servercfg"
"golang.zx2c4.com/wireguard/wgctrl/wgtypes" "golang.zx2c4.com/wireguard/wgctrl/wgtypes"
) )
@ -47,14 +48,15 @@ func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) {
continue continue
} }
if peer.IsRelayed == "yes" { if peer.IsRelayed == "yes" {
if !(node.IsRelay == "yes" && ncutils.StringSliceContains(node.RelayAddrs, peer.PrimaryAddress())) {
//skip -- willl be added to relay //skip -- willl be added to relay
continue continue
} }
}
if !nodeacls.AreNodesAllowed(nodeacls.NetworkID(node.Network), nodeacls.NodeID(node.ID), nodeacls.NodeID(peer.ID)) { if !nodeacls.AreNodesAllowed(nodeacls.NetworkID(node.Network), nodeacls.NodeID(node.ID), nodeacls.NodeID(peer.ID)) {
//skip if not permitted by acl //skip if not permitted by acl
continue 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