cleanup, test fixes

This commit is contained in:
Britt Dodd 2022-01-10 13:25:56 -05:00
parent f3d76cf35d
commit c61270237d
3 changed files with 29 additions and 15 deletions

View file

@ -280,7 +280,7 @@ func UpdateClient(db store.IStore) echo.HandlerFunc {
return c.JSON(http.StatusBadRequest, jsonHTTPResponse{false, "Allowed IPs must be in CIDR format"}) return c.JSON(http.StatusBadRequest, jsonHTTPResponse{false, "Allowed IPs must be in CIDR format"})
} }
if util.ValidateAllowedIPs(_client.ExtraAllowedIPs) == false { if util.ValidateExtraAllowedIPs(_client.ExtraAllowedIPs) == false {
log.Warnf("Invalid Allowed IPs input from user: %v", _client.ExtraAllowedIPs) log.Warnf("Invalid Allowed IPs input from user: %v", _client.ExtraAllowedIPs)
return c.JSON(http.StatusBadRequest, jsonHTTPResponse{false, "Extra Allowed IPs must be in CIDR format"}) return c.JSON(http.StatusBadRequest, jsonHTTPResponse{false, "Extra Allowed IPs must be in CIDR format"})
} }
@ -640,7 +640,7 @@ func SuggestIPAllocation(db store.IStore) echo.HandlerFunc {
fmt.Sprintf("Cannot suggest ip allocation: failed to get available ip from network %s", cidr), fmt.Sprintf("Cannot suggest ip allocation: failed to get available ip from network %s", cidr),
}) })
} }
if (strings.Contains(ip, ":")) { if strings.Contains(ip, ":") {
suggestedIPs = append(suggestedIPs, fmt.Sprintf("%s/128", ip)) suggestedIPs = append(suggestedIPs, fmt.Sprintf("%s/128", ip))
} else { } else {
suggestedIPs = append(suggestedIPs, fmt.Sprintf("%s/32", ip)) suggestedIPs = append(suggestedIPs, fmt.Sprintf("%s/32", ip))

View file

@ -20,5 +20,5 @@ PostDown = {{ .serverConfig.Interface.PostDown }}
[Peer] [Peer]
PublicKey = {{ .Client.PublicKey }} PublicKey = {{ .Client.PublicKey }}
PresharedKey = {{ .Client.PresharedKey }} PresharedKey = {{ .Client.PresharedKey }}
AllowedIPs = {{$first :=true}}{{range .Client.AllocatedIPs }}{{if $first}}{{$first = false}}{{else}},{{end}}{{.}}{{end}}{{$first :=true}}{{range .Client.ExtraAllowedIPs }},{{.}}{{end}} AllowedIPs = {{$first :=true}}{{range .Client.AllocatedIPs }}{{if $first}}{{$first = false}}{{else}},{{end}}{{.}}{{end}}{{range .Client.ExtraAllowedIPs }}{{if ne . ""}},{{.}}{{else}}{{end}}{{end}}
{{end}}{{end}} {{end}}{{end}}

View file

@ -76,20 +76,34 @@ func ValidateCIDR(cidr string) bool {
} }
// ValidateCIDRList to validate a list of network CIDR // ValidateCIDRList to validate a list of network CIDR
func ValidateCIDRList(cidrs []string) bool { func ValidateCIDRList(cidrs []string, allowEmpty bool) bool {
for _, cidr := range cidrs { for _, cidr := range cidrs {
if allowEmpty {
if len(cidr) > 0 { if len(cidr) > 0 {
if ValidateCIDR(cidr) == false { if ValidateCIDR(cidr) == false {
return false return false
} }
} }
} else {
if ValidateCIDR(cidr) == false {
return false
}
}
} }
return true return true
} }
// ValidateAllowedIPs to validate allowed ip addresses in CIDR format // ValidateAllowedIPs to validate allowed ip addresses in CIDR format
func ValidateAllowedIPs(cidrs []string) bool { func ValidateAllowedIPs(cidrs []string) bool {
if ValidateCIDRList(cidrs) == false { if ValidateCIDRList(cidrs, false) == false {
return false
}
return true
}
// ValidateExtraAllowedIPs to validate extra Allowed ip addresses, allowing empty strings
func ValidateExtraAllowedIPs(cidrs []string) bool {
if ValidateCIDRList(cidrs, true) == false {
return false return false
} }
return true return true
@ -97,7 +111,7 @@ func ValidateAllowedIPs(cidrs []string) bool {
// ValidateServerAddresses to validate allowed ip addresses in CIDR format // ValidateServerAddresses to validate allowed ip addresses in CIDR format
func ValidateServerAddresses(cidrs []string) bool { func ValidateServerAddresses(cidrs []string) bool {
if ValidateCIDRList(cidrs) == false { if ValidateCIDRList(cidrs, false) == false {
return false return false
} }
return true return true