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