skip internet gateways

This commit is contained in:
Abhishek Kondur
2023-02-06 20:04:47 +04:00
parent b695f6e288
commit 66faa18fb9
2 changed files with 18 additions and 8 deletions

View File

@@ -22,20 +22,25 @@ func CreateEgressGateway(gateway models.EgressGatewayRequest) (models.Node, erro
if err != nil {
return models.Node{}, err
}
for i, cidr := range gateway.Ranges {
normalized, err := NormalizeCIDR(cidr)
if err != nil {
return models.Node{}, err
}
gateway.Ranges[i] = normalized
}
if host.OS != "linux" && host.OS != "freebsd" { // add in darwin later
return models.Node{}, errors.New(host.OS + " is unsupported for egress gateways")
}
if host.OS == "linux" && host.FirewallInUse == models.FIREWALL_NONE {
return models.Node{}, errors.New("firewall is not supported for egress gateways")
}
for i := len(gateway.Ranges) - 1; i >= 0; i-- {
if gateway.Ranges[i] == "0.0.0.0/0" || gateway.Ranges[i] == "::/0" {
logger.Log(0, "currently internet gateways are not supported", gateway.Ranges[i])
gateway.Ranges = append(gateway.Ranges[:i], gateway.Ranges[i+1:]...)
continue
}
normalized, err := NormalizeCIDR(gateway.Ranges[i])
if err != nil {
return models.Node{}, err
}
gateway.Ranges[i] = normalized
}
if gateway.NatEnabled == "" {
gateway.NatEnabled = "yes"
}