Skip to content

Commit f9146ea

Browse files
authored
Add aaaa_present?
1 parent 3541b11 commit f9146ea

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

lib/github-pages-health-check/domain.rb

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ class Domain < Checkable
8989

9090
HASH_METHODS = %i[
9191
host uri nameservers dns_resolves? proxied? cloudflare_ip?
92-
fastly_ip? old_ip_address? a_record? aaaa_record_present? cname_record?
92+
fastly_ip? old_ip_address? a_record? aaaa_record? cname_record?
9393
mx_records_present? valid_domain? apex_domain? should_be_a_record?
9494
cname_to_github_user_domain? cname_to_pages_dot_github_dot_com?
9595
cname_to_fastly? pointed_to_github_pages_ip?
@@ -214,7 +214,7 @@ def dns_zone_ns?
214214
end
215215
end
216216

217-
# Should the domain use an A or AAAA record?
217+
# Should the domain use an A record?
218218
def should_be_a_record?
219219
!pages_io_domain? && (apex_domain? || mx_records_present?)
220220
end
@@ -225,7 +225,7 @@ def should_be_cname_record?
225225

226226
# Is the domain's first response an A or AAAA record to a valid GitHub Pages IP?
227227
def pointed_to_github_pages_ip?
228-
return false unless a_record?
228+
return false unless address_record?
229229

230230
CURRENT_IP_ADDRESSES_ALL.include?(dns.first.address.to_s.downcase)
231231
end
@@ -235,7 +235,7 @@ def non_github_pages_ip_present?
235235
return unless dns?
236236

237237
dns
238-
.select { |a| A_RECORD_TYPES.include?(a.type) }
238+
.select { |a| Dnsruby::Types::A == a.type || Dnsruby::Types::AAAA == a.type }
239239
.any? { |a| !github_pages_ip?(a.address.to_s) }
240240
end
241241

@@ -353,12 +353,20 @@ def old_ip_address?
353353
end
354354
end
355355

356-
# Is this domain's first response an A or AAAA record?
356+
# Is this domain's first response an A record?
357357
def a_record?
358358
return @is_a_record if defined?(@is_a_record)
359359
return unless dns?
360360

361-
@is_a_record = A_RECORD_TYPES.include?(dns.first.type)
361+
@is_a_record = Dnsruby::Types::A == dns.first.type
362+
end
363+
364+
# Is this domain's first response an AAAA record?
365+
def aaaa_record?
366+
return @is_aaaa_record if defined?(@is_aaaa_record)
367+
return unless dns?
368+
369+
@is_aaaa_record = Dnsruby::Types::AAAA == dns.first.type
362370
end
363371

364372
def aaaa_record_present?
@@ -452,7 +460,9 @@ def caa_error
452460

453461
private
454462

455-
A_RECORD_TYPES = [Dnsruby::Types::A, Dnsruby::Types::AAAA].freeze
463+
def address_record?
464+
a_record? || aaaa_record?
465+
end
456466

457467
def caa
458468
@caa ||= GitHubPages::HealthCheck::CAA.new(
@@ -528,7 +538,9 @@ def scheme
528538
def cdn_ip?(cdn)
529539
return unless dns?
530540

531-
a_records = dns.select { |answer| A_RECORD_TYPES.include?(answer.type) }
541+
a_records = dns.select do |answer|
542+
Dnsruby::Types::A == answer.type || Dnsruby::Types::AAAA == answer.type
543+
end
532544
return false if !a_records || a_records.empty?
533545

534546
a_records.all? do |answer|

0 commit comments

Comments
 (0)