|
@@ -61,6 +61,9 @@ func GetNodePeers(networkName, nodeid string, excludeRelayed bool, isP2S bool) (
|
|
peer.EgressGatewayRanges = node.EgressGatewayRanges
|
|
peer.EgressGatewayRanges = node.EgressGatewayRanges
|
|
peer.IsEgressGateway = node.IsEgressGateway
|
|
peer.IsEgressGateway = node.IsEgressGateway
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ peer.IsIngressGateway = node.IsIngressGateway
|
|
|
|
+ isDualStack := node.IsDualStack == "yes"
|
|
allow := node.IsRelayed != "yes" || !excludeRelayed
|
|
allow := node.IsRelayed != "yes" || !excludeRelayed
|
|
|
|
|
|
if node.Network == networkName && node.IsPending != "yes" && allow {
|
|
if node.Network == networkName && node.IsPending != "yes" && allow {
|
|
@@ -89,6 +92,17 @@ func GetNodePeers(networkName, nodeid string, excludeRelayed bool, isP2S bool) (
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if peer.IsIngressGateway == "yes" { // handle ingress stuff
|
|
|
|
+ if currentExtClients, err := GetExtPeersList(&node); err == nil {
|
|
|
|
+ for i := range currentExtClients {
|
|
|
|
+ peer.AllowedIPs = append(peer.AllowedIPs, currentExtClients[i].Address)
|
|
|
|
+ if isDualStack {
|
|
|
|
+ peer.AllowedIPs = append(peer.AllowedIPs, currentExtClients[i].Address6)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
if (!isP2S || peer.IsHub == "yes") && currentNetworkACLs.IsAllowed(acls.AclID(nodeid), acls.AclID(node.ID)) {
|
|
if (!isP2S || peer.IsHub == "yes") && currentNetworkACLs.IsAllowed(acls.AclID(nodeid), acls.AclID(node.ID)) {
|
|
peers = append(peers, peer)
|
|
peers = append(peers, peer)
|
|
}
|
|
}
|