spf 0.0.32 → 0.0.33

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/error.rb CHANGED
@@ -14,6 +14,7 @@ module SPF
14
14
 
15
15
  class DNSError < Error; end # DNS error
16
16
  class DNSTimeoutError < DNSError; end # DNS timeout
17
+ class DNSNXDomainError < DNSError; end # DNS NXDomain
17
18
  class RecordSelectionError < Error # Record selection error
18
19
  attr_accessor :records
19
20
  def initialize(message, records=[])
data/lib/spf/eval.rb CHANGED
@@ -140,7 +140,18 @@ class SPF::Server
140
140
 
141
141
  domain = domain.sub(/\.$/, '').downcase
142
142
 
143
- packet = @dns_resolver.getresources(domain, rr_type)
143
+ packet = nil
144
+ begin
145
+ packet = @dns_resolver.getresources(domain, rr_type)
146
+ rescue Resolv::TimeoutError => e
147
+ raise SPF::DNSTimeoutError.new(
148
+ "Time-out on DNS '#{rr_type}' lookup of '#{domain}'")
149
+ rescue Resolv::NXDomainError => e
150
+ raise SPF::DNSError.new("NXDomain for '#{domain}'")
151
+ rescue Resolv::ResolvError => e
152
+ raise SPF::DNSError.new(
153
+ "Unknown error on DNS '#{rr_type}' lookup of '#{domain}'")
154
+ end
144
155
 
145
156
  # Raise DNS exception unless an answer packet with RCODE 0 or 3 (NXDOMAIN)
146
157
  # was received (thereby treating NXDOMAIN as an acceptable but empty answer packet):
data/lib/spf/model.rb CHANGED
@@ -326,7 +326,12 @@ class SPF::Mech < SPF::Term
326
326
 
327
327
  ipv4_prefix_length = @ipv4_prefix_length || self.default_ipv4_prefix_length
328
328
  ipv6_prefix_length = @ipv6_prefix_length || self.default_ipv6_prefix_length
329
- packet = server.dns_lookup(domain.to_s, 'ANY')
329
+ begin
330
+ packet = server.dns_lookup(domain.to_s, 'ANY')
331
+ rescue SPF::DNSError => e
332
+ @errors << e
333
+ return false
334
+ end
330
335
  server.count_void_dns_lookup(request) unless (rrs = packet)
331
336
 
332
337
  rrs.each do |rr|
data/lib/spf/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module SPF
2
- VERSION = '0.0.32'
2
+ VERSION = '0.0.33'
3
3
  end
4
4
 
5
5
  # vim:sw=2 sts=2
data/spf.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "spf"
8
- s.version = "0.0.32"
8
+ s.version = "0.0.33"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Andrew Flury", "Julian Mehnle"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.32
4
+ version: 0.0.33
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -127,8 +127,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
127
  version: '0'
128
128
  requirements: []
129
129
  rubyforge_project:
130
- rubygems_version: 1.8.23
130
+ rubygems_version: 1.8.23.2
131
131
  signing_key:
132
132
  specification_version: 3
133
133
  summary: Implementation of the Sender Policy Framework
134
134
  test_files: []
135
+ has_rdoc: