mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-16 15:26:40 +00:00
use domains validate for routes
This commit is contained in:
@@ -94,7 +94,7 @@ func (h *handler) createRoute(w http.ResponseWriter, r *http.Request) {
|
||||
var networkType route.NetworkType
|
||||
var newPrefix netip.Prefix
|
||||
if req.Domains != nil {
|
||||
d, err := domain.ValidateFQDNs(*req.Domains)
|
||||
d, err := domain.ValidateDomains(*req.Domains)
|
||||
if err != nil {
|
||||
util.WriteError(r.Context(), status.Errorf(status.InvalidArgument, "invalid domains: %v", err), w)
|
||||
return
|
||||
|
||||
@@ -67,6 +67,27 @@ func ValidateFQDNs(fqdns []string) (List, error) {
|
||||
return domainList, nil
|
||||
}
|
||||
|
||||
// ValidateDomains checks if each domain in the list is valid and returns a punycode-encoded DomainList.
|
||||
func ValidateDomains(domains []string) (List, error) {
|
||||
if len(domains) == 0 {
|
||||
return nil, fmt.Errorf("domains list is empty")
|
||||
}
|
||||
if len(domains) > maxFQDN {
|
||||
return nil, fmt.Errorf("domains list exceeds maximum allowed domains: %d", maxFQDN)
|
||||
}
|
||||
|
||||
var domainList List
|
||||
|
||||
for _, d := range domains {
|
||||
validDomain, err := ToValidDomain(d, true, true)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("invalid domain %s: %w", d, err)
|
||||
}
|
||||
domainList = append(domainList, validDomain)
|
||||
}
|
||||
return domainList, nil
|
||||
}
|
||||
|
||||
// ValidateFQDNsList checks if each domain in the list is valid
|
||||
func ValidateFQDNsList(fqdns []string) error {
|
||||
if len(fqdns) == 0 {
|
||||
|
||||
Reference in New Issue
Block a user