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 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
- @ip_network = IP.new("#{@ip_address}/#{@ipv4_prefix_length}") if @ip_address and @ipv4_prefix_length
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
- @ip_network = IP.new("#{@ip_address}/#{@ipv6_prefix_length}") if @ip_address and @ipv6_prefix_length
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
@@ -1,5 +1,5 @@
1
1
  module SPF
2
- VERSION = '0.0.18'
2
+ VERSION = '0.0.19'
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.18"
8
+ s.version = "0.0.19"
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.18
4
+ version: 0.0.19
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: