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 +1 -0
- data/lib/spf/model.rb +14 -2
- data/lib/spf/version.rb +1 -1
- data/spf.gemspec +1 -1
- metadata +1 -1
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
|
-
|
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
data/spf.gemspec
CHANGED