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 +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