spf 0.0.18 → 0.0.19
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/model.rb +17 -4
- data/lib/spf/version.rb +1 -1
- data/spf.gemspec +1 -1
- metadata +1 -1
data/lib/spf/model.rb
CHANGED
@@ -128,6 +128,8 @@ class SPF::Term
|
|
128
128
|
error(SPF::TermIPv4AddressExpectedError.new(
|
129
129
|
"Missing or invalid required IPv4 address in '#{@text}'"))
|
130
130
|
end
|
131
|
+
@ip_address = @parse_text.dup unless @ip_address
|
132
|
+
|
131
133
|
end
|
132
134
|
|
133
135
|
def parse_ipv4_prefix_length(required = false)
|
@@ -151,7 +153,11 @@ class SPF::Term
|
|
151
153
|
def parse_ipv4_network(required = false)
|
152
154
|
self.parse_ipv4_address(required)
|
153
155
|
self.parse_ipv4_prefix_length
|
154
|
-
|
156
|
+
begin
|
157
|
+
@ip_network = IP.new("#{@ip_address}/#{@ipv4_prefix_length}") if @ip_address and @ipv4_prefix_length
|
158
|
+
rescue ArgumentError
|
159
|
+
@ip_network = @ip_address
|
160
|
+
end
|
155
161
|
end
|
156
162
|
|
157
163
|
def parse_ipv6_address(required = false)
|
@@ -161,6 +167,7 @@ class SPF::Term
|
|
161
167
|
error(SPF::TermIPv6AddressExpected.new(
|
162
168
|
"Missing required IPv6 address in '#{@text}'"))
|
163
169
|
end
|
170
|
+
@ip_address = @parse_text.dup unless @ip_address
|
164
171
|
end
|
165
172
|
|
166
173
|
def parse_ipv6_prefix_length(required = false)
|
@@ -184,7 +191,11 @@ class SPF::Term
|
|
184
191
|
def parse_ipv6_network(required = false)
|
185
192
|
self.parse_ipv6_address(required)
|
186
193
|
self.parse_ipv6_prefix_length
|
187
|
-
|
194
|
+
begin
|
195
|
+
@ip_network = IP.new("#{@ip_address}/#{@ipv6_prefix_length}") if @ip_address and @ipv6_prefix_length
|
196
|
+
rescue ArgumentError
|
197
|
+
@ip_network = @ip_address
|
198
|
+
end
|
188
199
|
end
|
189
200
|
|
190
201
|
def parse_ipv4_ipv6_prefix_lengths
|
@@ -429,11 +440,12 @@ class SPF::Mech < SPF::Term
|
|
429
440
|
|
430
441
|
def parse_params(required = true)
|
431
442
|
self.parse_ipv4_network(required)
|
432
|
-
@ip_netblocks << @ip_network
|
443
|
+
@ip_netblocks << @ip_network if IP === @ip_network
|
433
444
|
end
|
434
445
|
|
435
446
|
def params
|
436
447
|
return nil unless @ip_network
|
448
|
+
return @ip_network if String === @ip_network
|
437
449
|
result = @ip_network.to_addr
|
438
450
|
if @ip_network.pfxlen != @default_ipv4_prefix_length
|
439
451
|
result += "/#{@ip_network.pfxlen}"
|
@@ -457,11 +469,12 @@ class SPF::Mech < SPF::Term
|
|
457
469
|
|
458
470
|
def parse_params(required = true)
|
459
471
|
self.parse_ipv6_network(required)
|
460
|
-
@ip_netblocks << @ip_network
|
472
|
+
@ip_netblocks << @ip_network if IP === @ip_network
|
461
473
|
end
|
462
474
|
|
463
475
|
def params
|
464
476
|
return nil unless @ip_network
|
477
|
+
result @ip_network if String === @ip_network
|
465
478
|
params = @ip_network.to_addr
|
466
479
|
params += '/' + @ip_network.pfxlen.to_s if
|
467
480
|
@ip_network.pfxlen != self.default_ipv6_prefix_length
|
data/lib/spf/version.rb
CHANGED
data/spf.gemspec
CHANGED