spf 0.0.14 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/spf/model.rb +8 -7
- data/lib/spf/version.rb +1 -1
- data/spf.gemspec +1 -1
- metadata +1 -1
data/lib/spf/model.rb
CHANGED
@@ -307,7 +307,7 @@ class SPF::Mech < SPF::Term
|
|
307
307
|
|
308
308
|
ipv4_prefix_length = @ipv4_prefix_length || self.default_ipv4_prefix_length
|
309
309
|
ipv6_prefix_length = @ipv6_prefix_length || self.default_ipv6_prefix_length
|
310
|
-
packet = server.dns_lookup(domain, 'ANY')
|
310
|
+
packet = server.dns_lookup(domain.to_s, 'ANY')
|
311
311
|
server.count_void_dns_lookup(request) unless (rrs = packet)
|
312
312
|
|
313
313
|
rrs.each do |rr|
|
@@ -411,7 +411,7 @@ class SPF::Mech < SPF::Term
|
|
411
411
|
|
412
412
|
domain = self.domain(server, request)
|
413
413
|
packet = server.dns_lookup(domain, 'A')
|
414
|
-
rrs = (packet.
|
414
|
+
rrs = (packet.exchange or server.count_void_dns_lookup(request))
|
415
415
|
rrs.each do |rr|
|
416
416
|
return true if rr.type == 'A'
|
417
417
|
end
|
@@ -555,18 +555,18 @@ class SPF::Mech < SPF::Term
|
|
555
555
|
|
556
556
|
target_domain = self.domain(server, request)
|
557
557
|
mx_packet = server.dns_lookup(target_domain, 'MX')
|
558
|
-
mx_rrs = (mx_packet
|
558
|
+
mx_rrs = (mx_packet or server.count_void_dns_lookup(request))
|
559
559
|
|
560
560
|
# Respect the MX mechanism lookups limit (RFC 4408, 5.4/3/4):
|
561
561
|
if server.max_name_lookups_per_mx_mech
|
562
|
-
mx_rrs =
|
562
|
+
mx_rrs = mx_rrs[0, server.max_name_lookups_per_mx_mech]
|
563
563
|
end
|
564
564
|
|
565
565
|
# TODO: Use A records from packet's "additional" section? Probably not.
|
566
566
|
|
567
567
|
# Check MX records:
|
568
568
|
mx_rrs.each do |rr|
|
569
|
-
if
|
569
|
+
if Resolv::DNS::Resource::IN::MX === rr
|
570
570
|
return true if
|
571
571
|
self.match_in_domain(server, request, rr.exchange)
|
572
572
|
else
|
@@ -664,6 +664,7 @@ class SPF::Mod < SPF::Term
|
|
664
664
|
end
|
665
665
|
|
666
666
|
class SPF::UnknownMod < SPF::Mod
|
667
|
+
NAME = 'uknown'
|
667
668
|
end
|
668
669
|
|
669
670
|
class SPF::Mod::Exp < SPF::Mod
|
@@ -872,7 +873,7 @@ class SPF::Record
|
|
872
873
|
# Looks like a modifier:
|
873
874
|
mod_text = $1
|
874
875
|
mod_name = $2.downcase
|
875
|
-
mod_class = self.class::MOD_CLASSES[mod_name.to_sym] || SPF::
|
876
|
+
mod_class = self.class::MOD_CLASSES[mod_name.to_sym] || SPF::UnknownMod
|
876
877
|
if mod_class
|
877
878
|
# Known modifier.
|
878
879
|
term = mod = mod_class.new_from_string(mod_text, {:raise_exceptions => @raise_exceptions})
|
@@ -957,7 +958,7 @@ class SPF::Record
|
|
957
958
|
|
958
959
|
MOD_CLASSES = {
|
959
960
|
:redirect => SPF::Mod::Redirect,
|
960
|
-
:exp => SPF::Mod::Exp
|
961
|
+
:exp => SPF::Mod::Exp,
|
961
962
|
}
|
962
963
|
|
963
964
|
|
data/lib/spf/version.rb
CHANGED
data/spf.gemspec
CHANGED