fixed hub logic

This commit is contained in:
afeiszli
2022-02-21 11:08:45 -05:00
parent f21dad5184
commit 33df27a721
2 changed files with 10 additions and 5 deletions

View File

@@ -30,7 +30,7 @@ func GetHubPeer(networkName string) []models.Node {
}
// GetNodePeers - fetches peers for a given node
func GetNodePeers(networkName string, excludeRelayed bool) ([]models.Node, error) {
func GetNodePeers(networkName string, excludeRelayed bool, isP2S bool) ([]models.Node, error) {
var peers []models.Node
var networkNodes, egressNetworkNodes, err = getNetworkEgressAndNodes(networkName)
if err != nil {
@@ -76,9 +76,11 @@ func GetNodePeers(networkName string, excludeRelayed bool) ([]models.Node, error
}
}
}
if !isP2S || peer.IsHub == "yes" {
peers = append(peers, peer)
}
}
}
return peers, err
}
@@ -87,20 +89,22 @@ func GetNodePeers(networkName string, excludeRelayed bool) ([]models.Node, error
func GetPeersList(refnode *models.Node) ([]models.Node, error) {
var peers []models.Node
var err error
var isP2S bool
var networkName = refnode.Network
var excludeRelayed = refnode.IsRelay != "yes"
var relayedNodeAddr string
if refnode.IsRelayed == "yes" {
relayedNodeAddr = refnode.Address
}
network, err := GetNetwork(networkName)
if err != nil {
return peers, err
} else if network.IsPointToSite == "yes" && refnode.IsHub != "yes" {
return GetHubPeer(networkName), nil
isP2S = true
}
if relayedNodeAddr == "" {
peers, err = GetNodePeers(networkName, excludeRelayed)
peers, err = GetNodePeers(networkName, excludeRelayed, isP2S)
} else {
var relayNode models.Node
relayNode, err = GetNodeRelay(networkName, relayedNodeAddr)
@@ -120,7 +124,7 @@ func GetPeersList(refnode *models.Node) ([]models.Node, error) {
} else {
peerNode.AllowedIPs = append(peerNode.AllowedIPs, peerNode.RelayAddrs...)
}
nodepeers, err := GetNodePeers(networkName, false)
nodepeers, err := GetNodePeers(networkName, false, isP2S)
if err == nil && peerNode.UDPHolePunch == "yes" {
for _, nodepeer := range nodepeers {
if nodepeer.Address == peerNode.Address {

View File

@@ -187,6 +187,7 @@ func setPeerInfo(node *models.Node) models.Node {
peer.UDPHolePunch = node.UDPHolePunch
peer.Address = node.Address
peer.Address6 = node.Address6
peer.IsHub = node.IsHub
peer.EgressGatewayRanges = node.EgressGatewayRanges
peer.IsEgressGateway = node.IsEgressGateway
peer.IngressGatewayRange = node.IngressGatewayRange