net-ping 2.0.1 → 2.0.2

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 17e2c148e3e4f0ac06b324b666351eb4f485e44c
4
- data.tar.gz: b19d20fd8a675c101df2b4bffa9664800e60a7bb
3
+ metadata.gz: f9ddc576d5378243648c90de748b4c0c9114642d
4
+ data.tar.gz: 92f7b54ac2ba20c14600d8c8c411698e1452b859
5
5
  SHA512:
6
- metadata.gz: 226c87f3679a0e5b22a164acc01f552c43734c215a675f54cf36754149ce400c8e23fc44559cf0f902c967850ab602ed1d0ee29f43727cc0f158cddedb9f804a
7
- data.tar.gz: 236d2377a2419d400f78260337c0e892fa7a42d4599a9d5ca3c9534a9cec0ae45865c39bc6c184667e068edff2c3274ebbbd639b8c465b241abe9b4cb57df6a9
6
+ metadata.gz: 916179b9dcef791923c9d93d1af8ee642687a655843522f0ac972aa2fa0aec10f91806f06be0eb25090d2dd9bf92c9a6fca37cda08dd2e5dd2bfa4165750d506
7
+ data.tar.gz: 6b98685b066ddeb79cdd6f835077f36543d5411a8ab72f93c4aab3b152004636ebc8d16248cddffafc67202b98db1f7b09acdda045cf8e7e288747b3402596b7
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source 'http://rubygems.org'
1
+ source 'https://rubygems.org'
2
2
  gemspec
@@ -1,15 +1,24 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- net-ping (1.7.7)
4
+ net-ping (2.0.0)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
8
8
  specs:
9
+ byebug (9.1.0)
10
+ coderay (1.1.2)
9
11
  fakeweb (1.3.0)
10
- power_assert (0.3.0)
11
- rake (11.2.2)
12
- test-unit (3.2.1)
12
+ method_source (0.8.2)
13
+ power_assert (1.1.0)
14
+ pry (0.11.0)
15
+ coderay (~> 1.1.0)
16
+ method_source (~> 0.8.1)
17
+ pry-byebug (3.5.0)
18
+ byebug (~> 9.1)
19
+ pry (~> 0.10)
20
+ rake (12.1.0)
21
+ test-unit (3.2.6)
13
22
  power_assert
14
23
 
15
24
  PLATFORMS
@@ -18,8 +27,9 @@ PLATFORMS
18
27
  DEPENDENCIES
19
28
  fakeweb
20
29
  net-ping!
30
+ pry-byebug
21
31
  rake
22
32
  test-unit
23
33
 
24
34
  BUNDLED WITH
25
- 1.11.2
35
+ 1.15.3
@@ -28,7 +28,21 @@ module Net
28
28
  # UNIX systems), and the port value is ignored.
29
29
  #
30
30
  def initialize(host=nil, port=nil, timeout=5)
31
- raise 'requires root privileges' if Process.euid > 0
31
+ begin
32
+ # If we have cap2, but not are root, or have net_raw, raise an error
33
+ require 'cap2'
34
+ current_process = Cap2.process
35
+ unless Process.euid == 0 \
36
+ || current_process.permitted?(:net_raw) \
37
+ && current_process.enabled?(:net_raw)
38
+ raise StandardError 'requires root privileges or setcap net_raw'
39
+ end
40
+ rescue LoadError
41
+ # Without cap2, raise error if we are not root
42
+ unless Process.euid == 0
43
+ raise StandardError 'requires root privileges or setcap net_raw'
44
+ end
45
+ end
32
46
 
33
47
  if File::ALT_SEPARATOR
34
48
  unless Win32::Security.elevated_security?
@@ -112,7 +126,7 @@ module Net
112
126
  io_array = select([socket], nil, nil, timeout)
113
127
 
114
128
  if io_array.nil? || io_array[0].empty?
115
- @exception = "timeout" if io_array.nil?
129
+ raise Timeout::Error if io_array.nil?
116
130
  return false
117
131
  end
118
132
 
Binary file
@@ -3,7 +3,7 @@ require 'rbconfig'
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = 'net-ping'
6
- spec.version = '2.0.1'
6
+ spec.version = '2.0.2'
7
7
  spec.license = 'Artistic 2.0'
8
8
  spec.author = 'Chris Chernesky'
9
9
  spec.email = 'chris.netping@tinderglow.com'
@@ -17,9 +17,10 @@ Gem::Specification.new do |spec|
17
17
  # The TCP Ping class requires this for non-blocking sockets.
18
18
  spec.required_ruby_version = ">= 1.9.3"
19
19
 
20
- spec.add_development_dependency('test-unit', '~> 0')
21
- spec.add_development_dependency('fakeweb', '~> 0')
22
- spec.add_development_dependency('rake', '~> 0')
20
+ spec.add_development_dependency('test-unit', '>= 0')
21
+ spec.add_development_dependency('fakeweb', '>= 0')
22
+ spec.add_development_dependency('rake', '>= 0')
23
+ spec.add_development_dependency('pry-byebug', '>= 0')
23
24
 
24
25
  if File::ALT_SEPARATOR
25
26
  require 'rbconfig'
@@ -17,8 +17,19 @@ if File::ALT_SEPARATOR
17
17
  require 'test_net_ping_icmp'
18
18
  end
19
19
  else
20
- if Process.euid == 0
21
- require 'test_net_ping_icmp'
20
+ # If cap2 is availble, check if we are root, or our process has net_raw,
21
+ # then include ICMP tests
22
+ begin
23
+ require 'cap2'
24
+ current_process = Cap2.process
25
+ if Process.euid == 0 \
26
+ || current_process.permitted?(:net_raw) \
27
+ && current_process.enabled?(:net_raw)
28
+ require 'test_net_ping_icmp'
29
+ end
30
+ rescue LoadError
31
+ # If we don't have cap2, include ICMP tests if we are root
32
+ require 'test_net_ping_icmp' if Process.euid == 0
22
33
  end
23
34
  end
24
35
 
@@ -16,9 +16,23 @@ if File::ALT_SEPARATOR
16
16
  raise "The test:icmp task must be run with elevated security rights"
17
17
  end
18
18
  else
19
- unless Process.euid == 0
20
- raise "The test:icmp task must be run with root privileges"
19
+
20
+ begin
21
+ # If we have cap2; raise error unless we are root, or have net_raw
22
+ require 'cap2'
23
+ current_process = Cap2.process
24
+ unless Process.euid == 0 \
25
+ || current_process.permitted?(:net_raw) \
26
+ && current_process.enabled?(:net_raw)
27
+ raise StandardError 'requires root privileges or setcap net_raw'
28
+ end
29
+ rescue LoadError
30
+ # Without cap2; raise error unless we are root
31
+ unless Process.euid == 0
32
+ raise StandardError 'requires root privileges or setcap net_raw'
33
+ end
21
34
  end
35
+
22
36
  end
23
37
 
24
38
  class TC_PingICMP < Test::Unit::TestCase
@@ -134,7 +148,7 @@ class TC_PingICMP < Test::Unit::TestCase
134
148
 
135
149
  test "timeout works as expected" do
136
150
  omit_if(@@jruby)
137
- icmp = Net::Ping::ICMP.new('bogus.com', nil, 0.000001)
151
+ icmp = Net::Ping::ICMP.new('8.8.8.8', nil, 0.000001)
138
152
  assert_false(icmp.ping?)
139
153
  assert_kind_of(Timeout::Error, icmp.exception)
140
154
  end
metadata CHANGED
@@ -1,55 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-ping
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Chernesky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-08 00:00:00.000000000 Z
11
+ date: 2017-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-unit
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: fakeweb
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry-byebug
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  description: |2
@@ -83,6 +97,7 @@ files:
83
97
  - lib/net/ping/tcp.rb
84
98
  - lib/net/ping/udp.rb
85
99
  - lib/net/ping/wmi.rb
100
+ - net-ping-2.0.1.gem
86
101
  - net-ping.gemspec
87
102
  - test/test_net_ping.rb
88
103
  - test/test_net_ping_external.rb
@@ -111,10 +126,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
126
  version: '0'
112
127
  requirements: []
113
128
  rubyforge_project:
114
- rubygems_version: 2.4.5.1
129
+ rubygems_version: 2.6.11
115
130
  signing_key:
116
131
  specification_version: 4
117
132
  summary: A ping interface for Ruby.
118
133
  test_files:
119
134
  - test/test_net_ping.rb
120
- has_rdoc: