spf 0.0.21 → 0.0.22

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