spf 0.0.14 → 0.0.15
Sign up to get free protection for your applications and to get access to all the features.
- 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