proxy_pac_rb 0.3.3 → 0.3.4

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTczOTMwM2ZkNGNhM2E2YWE1MWJmMDRhNjc2OGNlNTM0ZTAwOWE1NA==
4
+ ZmUwYmYzZTQ5ZDI1YTE5MWVlNTQ0ZThhMGRhYjUwNmM2OWVlZWE1ZA==
5
5
  data.tar.gz: !binary |-
6
- MTE0Y2JmMWQzNGE3YmUwZjI0MmU0ZGYzMDcxZjE4ZGNkZTQ5MzlmNA==
6
+ OTgwOWNmNGM5YTY2NDU0MzQ2MTJhMzY2ZGFiMzM2ZTgwM2QxNTRmYw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MmJkOTZjZWUwODQ1YzZhYjNhMjc4ZDI5Yjc0MzIzZDY0MDI2YjQ0MGI1M2Ni
10
- MzhjMWZmOTk5OTBjMWFmZjU5NDAzZTU3MDRmZTY2YTEwODdmZTEzN2NhNWM1
11
- MmFiNTk5YTJmMzNjYzUyNDBiNWE1NDZjZTE3NjhiYTE4ODljM2Q=
9
+ YmEwZTU3MjE1ZmFjOWQ4MWU4YjlhZjVmMjYwYjdjMDY2YTcyYjY0YTMyMTY1
10
+ YWNiZGVkNDc2ZWMzYWYwYzg4MWMxOGFlYzZhNmQyMTMzODEzZjc0ZDkyYzY0
11
+ ZTljNjJkZDZlZWE1NTIyODk5OWZiYzBmZDdjOGNmM2FmZmQzMmY=
12
12
  data.tar.gz: !binary |-
13
- ZTFlNDZiNjI0MGM3ZDI4MmY5MDM1ZDEyMDQ2ODhjMGVjMmM4NTM2NmI1ZjQz
14
- ZjM5ZWMwMjk0NmIxZDlhMzM5MTRiN2RlMDJjMTdiZDQ2YjVmMDU0Yjg0YTli
15
- MDU3YzQ1YzBmM2FiN2IzOTIxZWUxNzAzODQzZTIxZGZiY2UzYzI=
13
+ OGJhOTczZGI3MDI0ZmU0NDYwZTU1NzQ2MWJkNzM4ZTdkZTRkMGNiYTc2OGU4
14
+ N2JmOGNiZmJlNGRlMWFmNjU1YzhjMTc4ZGMzYzA2YjFiZjJmYjVkNzRlMWVk
15
+ OGE2MDZhMDgzMTk0ZmY0YmQwMmYxMmVjYjJhNDhiY2E0ZjdmOWU=
data/bin/pprb CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # encoding: utf-8
2
3
 
3
4
  $LOAD_PATH << File.expand_path('../../lib', __FILE__)
4
5
 
@@ -58,7 +58,7 @@ module ProxyPacRb
58
58
  end
59
59
 
60
60
  def dnsResolve(host)
61
- resolve_host(host).to_s
61
+ resolve_host(host)
62
62
  end
63
63
 
64
64
  def dnsDomainLevels(host)
@@ -72,7 +72,9 @@ module ProxyPacRb
72
72
  private
73
73
 
74
74
  def resolve_host(host)
75
- Resolv.each_address(host) do |address|
75
+ return nil if host.blank?
76
+
77
+ Resolv.each_address(host.force_encoding('ASCII-8BIT')) do |address|
76
78
  begin
77
79
  return address if IPAddr.new(address).ipv4?
78
80
  rescue ArgumentError
@@ -1,4 +1,4 @@
1
1
  #main ProxyPacRb
2
2
  module ProxyPacRb
3
- VERSION = '0.3.3'
3
+ VERSION = '0.3.4'
4
4
  end
data/lib/proxy_pac_rb.rb CHANGED
@@ -4,6 +4,7 @@ require 'resolv'
4
4
  require 'time'
5
5
  require 'open-uri'
6
6
  require 'active_support/core_ext/string/strip'
7
+ require 'active_support/core_ext/object/blank'
7
8
 
8
9
  require 'proxy_pac_rb/version'
9
10
  require 'proxy_pac_rb/encoding'
@@ -67,6 +67,28 @@ describe ProxyPacRb::Environment do
67
67
  result = environment.isInNet('10.0.0.1', '127.0.0.0', '255.255.255.0')
68
68
  expect(result).to be_false
69
69
  end
70
+
71
+ it 'resolves host name' do
72
+ name = 'google-public-dns-a.google.com'
73
+ result = environment.isInNet(name, '8.0.0.0', '255.0.0.0')
74
+ expect(result).to eq true
75
+ end
76
+
77
+ it 'handles not resolvable host names' do
78
+ name = 'asdf.in.localhost.localdomain'
79
+ result = environment.isInNet(name, '8.0.0.0', '255.0.0.0')
80
+ expect(result).to eq false
81
+ end
82
+
83
+ it 'handles empty strings' do
84
+ result = environment.isInNet('', '8.0.0.0', '255.0.0.0')
85
+ expect(result).to eq false
86
+ end
87
+
88
+ it 'handles nil' do
89
+ result = environment.isInNet(nil, '8.0.0.0', '255.0.0.0')
90
+ expect(result).to eq false
91
+ end
70
92
  end
71
93
 
72
94
  describe '#dnsResolve' do
@@ -76,9 +98,21 @@ describe ProxyPacRb::Environment do
76
98
  expect(environment.dnsResolve(name)).to eq(ip)
77
99
  end
78
100
 
79
- it 'return an empty string for a not resolvable host name' do
101
+ it 'return nil for a not resolvable host name' do
80
102
  name = 'not.resolvable.localhost.localdomain'
81
- expect(environment.dnsResolve(name)).to eq('')
103
+ expect(environment.dnsResolve(name)).to eq(nil)
104
+ end
105
+
106
+ it 'handles nil values as input' do
107
+ expect(environment.dnsResolve(nil)).to eq(nil)
108
+ end
109
+
110
+ it 'handles empty string as input' do
111
+ expect(environment.dnsResolve('')).to eq(nil)
112
+ end
113
+
114
+ it 'handles garbage as input' do
115
+ expect(environment.dnsResolve('§§jk:')).to eq(nil)
82
116
  end
83
117
  end
84
118
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proxy_pac_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Günnewig