spf 0.0.18 → 0.0.19

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