|
@@ -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" {
|
|
- //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)) {
|
|
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
|