added ingress outbound to ext clients

This commit is contained in:
0xdcarns 2022-03-25 15:44:32 -04:00
parent a6b1c6a8cd
commit 9b7631e6dc

View file

@ -61,6 +61,9 @@ func GetNodePeers(networkName, nodeid string, excludeRelayed bool, isP2S bool) (
peer.EgressGatewayRanges = node.EgressGatewayRanges
peer.IsEgressGateway = node.IsEgressGateway
}
peer.IsIngressGateway = node.IsIngressGateway
isDualStack := node.IsDualStack == "yes"
allow := node.IsRelayed != "yes" || !excludeRelayed
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)) {
peers = append(peers, peer)
}