Accept wildcards in RR's name.
This commit is contained in:
parent
a13d9e8e84
commit
7a1e3d4755
1 changed files with 26 additions and 10 deletions
|
@ -183,7 +183,7 @@ class DNSManager::Storage::Zone
|
|||
def get_errors : Array(Error)
|
||||
errors = [] of Error
|
||||
|
||||
unless Zone.is_subdomain_valid? @name
|
||||
unless Zone.is_valid_name? @name
|
||||
errors << "A invalid subdomain: #{@name}"
|
||||
end
|
||||
|
||||
|
@ -205,7 +205,7 @@ class DNSManager::Storage::Zone
|
|||
def get_errors : Array(Error)
|
||||
errors = [] of Error
|
||||
|
||||
unless Zone.is_subdomain_valid? @name
|
||||
unless Zone.is_valid_name? @name
|
||||
errors << "AAAA invalid subdomain: #{@name}"
|
||||
end
|
||||
|
||||
|
@ -227,7 +227,7 @@ class DNSManager::Storage::Zone
|
|||
def get_errors : Array(Error)
|
||||
errors = [] of Error
|
||||
|
||||
unless Zone.is_subdomain_valid? @name
|
||||
unless Zone.is_valid_name? @name
|
||||
errors << "TXT invalid subdomain: #{@name}"
|
||||
end
|
||||
|
||||
|
@ -284,7 +284,7 @@ class DNSManager::Storage::Zone
|
|||
def get_errors : Array(Error)
|
||||
errors = [] of Error
|
||||
|
||||
unless Zone.is_subdomain_valid? @name
|
||||
unless Zone.is_valid_name? @name
|
||||
errors << "NS invalid subdomain: #{@name}"
|
||||
end
|
||||
|
||||
|
@ -302,7 +302,7 @@ class DNSManager::Storage::Zone
|
|||
def get_errors : Array(Error)
|
||||
errors = [] of Error
|
||||
|
||||
unless Zone.is_subdomain_valid? @name
|
||||
unless Zone.is_valid_name? @name
|
||||
errors << "CNAME invalid subdomain: #{@name}"
|
||||
end
|
||||
|
||||
|
@ -452,7 +452,7 @@ class DNSManager::Storage::Zone
|
|||
def get_errors : Array(Error)
|
||||
errors = [] of Error
|
||||
|
||||
unless Zone.is_subdomain_valid? @name
|
||||
unless Zone.is_valid_name? @name
|
||||
errors << "SPF invalid subdomain: #{@name}"
|
||||
end
|
||||
|
||||
|
@ -558,7 +558,7 @@ class DNSManager::Storage::Zone
|
|||
def get_errors : Array(Error)
|
||||
errors = [] of Error
|
||||
|
||||
unless Zone.is_subdomain_valid? @name
|
||||
unless Zone.is_valid_name? @name
|
||||
errors << "DKIM invalid subdomain: #{@name}"
|
||||
end
|
||||
|
||||
|
@ -716,7 +716,7 @@ class DNSManager::Storage::Zone
|
|||
errors = [] of Error
|
||||
|
||||
# TODO: label can (and is expected to) start with an underscore.
|
||||
#unless Zone.is_subdomain_valid? @name
|
||||
#unless Zone.is_valid_name? @name
|
||||
# errors << "DMARC invalid subdomain: #{@name}"
|
||||
#end
|
||||
|
||||
|
@ -780,7 +780,7 @@ class DNSManager::Storage::Zone
|
|||
def get_errors : Array(Error)
|
||||
errors = [] of Error
|
||||
|
||||
unless Zone.is_subdomain_valid? @name
|
||||
unless Zone.is_valid_name? @name
|
||||
errors << "CAA invalid subdomain: #{@name}"
|
||||
end
|
||||
|
||||
|
@ -818,7 +818,7 @@ class DNSManager::Storage::Zone
|
|||
def get_errors : Array(Error)
|
||||
errors = [] of Error
|
||||
|
||||
unless Zone.is_subdomain_valid? @name
|
||||
unless Zone.is_valid_name? @name
|
||||
errors << "MX invalid subdomain: #{@name}"
|
||||
end
|
||||
|
||||
|
@ -983,6 +983,22 @@ class DNSManager::Storage::Zone
|
|||
false
|
||||
end
|
||||
|
||||
# Valid names: valid subdomains, wildcards alone or followed by a subdomain.
|
||||
def self.is_valid_name?(subdomain) : Bool
|
||||
if subdomain =~ subdomain_pattern
|
||||
true
|
||||
elsif subdomain =~ /^[*]$/
|
||||
true
|
||||
elsif subdomain[0..1] =~ /^[*][.]$/ && subdomain[2..] =~ subdomain_pattern
|
||||
true
|
||||
else
|
||||
false
|
||||
end
|
||||
rescue e
|
||||
Baguette::Log.error "invalid zone subdomain #{subdomain}: #{e}"
|
||||
false
|
||||
end
|
||||
|
||||
# This regex only is "good enough for now".
|
||||
def self.is_subdomain_valid?(subdomain) : Bool
|
||||
if subdomain =~ subdomain_pattern
|
||||
|
|
Loading…
Add table
Reference in a new issue