spf 0.0.21 → 0.0.22

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
@@ -36,6 +36,7 @@ module SPF
36
36
  class DuplicateGlobalMod < InvalidModError; end # Duplicate global modifier
37
37
  class InvalidMechError < InvalidTermError; end # Invalid mechanism
38
38
  class InvalidMechQualifierError < InvalidMechError; end # Invalid mechanism qualifier
39
+ class InvalidMechCIDRError < InvalidMechError; end # Invalid CIDR netblock in mech
39
40
  class TermDomainSpecExpectedError < SyntaxError; end # Missing required <domain-spec> in term
40
41
  class TermIPv4AddressExpectedError < SyntaxError; end # Missing required <ip4-network> in term
41
42
  class TermIPv4PrefixLengthExpected < SyntaxError; end # Missing required <ip4-cidr-length> in term
data/lib/spf/model.rb CHANGED
@@ -386,7 +386,7 @@ class SPF::Mech < SPF::Term
386
386
 
387
387
  def match(server, request, want_result = true)
388
388
  server.count_dns_interactive_term(request)
389
- return self.match_in_domain(server, request)
389
+ return self.match_in_domain(server, request, request.domain)
390
390
  end
391
391
 
392
392
  end
@@ -440,7 +440,12 @@ class SPF::Mech < SPF::Term
440
440
 
441
441
  def parse_params(required = true)
442
442
  self.parse_ipv4_network(required)
443
- @ip_netblocks << @ip_network if IP === @ip_network
443
+ if IP === @ip_network
444
+ @ip_netblocks << @ip_network
445
+ @errors << SPF::InvalidMechCIDRError.new(
446
+ 'Invalid CIDR netblock - bits in host portion of address'
447
+ ) if @ip_network.offset != 0
448
+ end
444
449
  end
445
450
 
446
451
  def params
@@ -470,6 +475,9 @@ class SPF::Mech < SPF::Term
470
475
  def parse_params(required = true)
471
476
  self.parse_ipv6_network(required)
472
477
  @ip_netblocks << @ip_network if IP === @ip_network
478
+ @errors << SPF::InvalidMechCIDRError.new(
479
+ 'Invalid CIDR netblock - bits in host portion of address'
480
+ ) if @ip_network.offset != 0
473
481
  end
474
482
 
475
483
  def params
@@ -1045,6 +1053,10 @@ class SPF::Record
1045
1053
  'v=spf2.0'
1046
1054
  end
1047
1055
 
1056
+ def scopes
1057
+ [:mfrom, :pra]
1058
+ end
1059
+
1048
1060
  def version_tag_pattern
1049
1061
  "
1050
1062
  spf(2\.0)
data/lib/spf/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module SPF
2
- VERSION = '0.0.21'
2
+ VERSION = '0.0.22'
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.21"
8
+ s.version = "0.0.22"
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.21
4
+ version: 0.0.22
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: