net-ping 1.6.0 → 1.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/CHANGES +17 -0
- data/Gemfile +1 -1
- data/Rakefile +6 -1
- data/lib/net/ping/helper.rb +31 -0
- data/lib/net/ping/http.rb +6 -1
- data/lib/net/ping/icmp.rb +2 -3
- data/lib/net/ping/ping.rb +1 -1
- data/net-ping.gemspec +2 -1
- data/test/test_net_ping.rb +1 -1
- data/test/test_net_ping_external.rb +4 -0
- data/test/test_net_ping_wmi.rb +5 -5
- metadata +40 -33
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YzI5NjJkYzk2MzJmZjlhYzg1NWM1MTU1Y2M2NWIyNDczMDBjZTcwNQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZWNmMzY1MzJkYTk5MmFmMWI0NDQ3Y2NiNTZhYjkwZTIzYjMxYTVmNw==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OTBhYTQ3NjgyNWJhZWY0NzdlZThlY2M1YjE0MzIzNjQ0ZTQ2M2Y4OWZhNTY2
|
10
|
+
MWMzZmYwMTcxYjJmMDFmNjk3YWI0Mzk0NDlkNmUxOGZhZGFhZmFkMzJhZWNk
|
11
|
+
ZDVjNjNiZTE3OTAxZGQ3NDEyNTRlMjFkM2JmOTg2ZTA1ZmNkMWY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MjdjMGEzZDM1YzAwMWVmN2M1YWQwYjY3MTMzNjViMGM0Yjc4ZWM4ODk4MzY0
|
14
|
+
MDc2MzI1NGI2NzU1ODZiMGExMGE3ZTYwY2RjZjEzYzk0MWE4ZWNkM2FkZDBh
|
15
|
+
MDRlMjIzYTA2ZDU4ZGYyMmU4MDM3ZDM3MWNlN2Y1OWJlZjEyMTU=
|
data/CHANGES
CHANGED
@@ -1,6 +1,23 @@
|
|
1
|
+
== 1.6.1 - 17-Jul-2013
|
2
|
+
* Automatically set the scheme to "http" if not present when performing
|
3
|
+
HTTP pings. See https://bugs.ruby-lang.org/issues/8645 for an issue
|
4
|
+
with the uri library that led to this change. Thanks go to Preston Lee
|
5
|
+
for the spot.
|
6
|
+
* Removed the windows/system_info dependency, since it added other
|
7
|
+
dependencies just to check the Windows version. Instead, I added a
|
8
|
+
helper file that adds some needed Windows functions using FFI.
|
9
|
+
* Added Rake as a development dependency and updated the Gemfile
|
10
|
+
source because Bundler. Thanks to Jean-Philippe Doyle for the patches.
|
11
|
+
* Added some warning text to the Net::Ping::External tests for users
|
12
|
+
who are using OpenDNS. In short, you will probably get test failures
|
13
|
+
and surprising true results for bad hosts.
|
14
|
+
|
1
15
|
== 1.6.0 - 19-Mar-2013
|
2
16
|
* Split out the ldap portion of the code into its own branch.
|
3
17
|
* Don't require resolv-replace on Ruby 1.9.3 or later.
|
18
|
+
* Now gets proxy information from the http_proxy, https_proxy, and
|
19
|
+
no_proxy environment variables and uses that when making requests.
|
20
|
+
Thanks go to Kevin Olbrich for the patch.
|
4
21
|
|
5
22
|
== 1.5.3 - 29-Feb-2012
|
6
23
|
* Removed the Windows::Console dependency and replaced it with FFI since there
|
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
source
|
1
|
+
source 'http://rubygems.org'
|
2
2
|
gemspec
|
data/Rakefile
CHANGED
@@ -9,7 +9,12 @@ namespace 'gem' do
|
|
9
9
|
desc 'Create the net-ping gem'
|
10
10
|
task :create => [:clean] do
|
11
11
|
spec = eval(IO.read('net-ping.gemspec'))
|
12
|
-
Gem::
|
12
|
+
if Gem::VERSION.to_f < 2.0
|
13
|
+
Gem::Builder.new(spec).build
|
14
|
+
else
|
15
|
+
require 'rubygems/package'
|
16
|
+
Gem::Package.build(spec)
|
17
|
+
end
|
13
18
|
end
|
14
19
|
|
15
20
|
desc 'Install the net-ping gem'
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'ffi'
|
2
|
+
|
3
|
+
module Windows
|
4
|
+
extend FFI::Library
|
5
|
+
ffi_lib :kernel32
|
6
|
+
|
7
|
+
attach_function :GetVersion, [], :ulong
|
8
|
+
|
9
|
+
def version
|
10
|
+
version = GetVersion()
|
11
|
+
major = LOBYTE(LOWORD(version))
|
12
|
+
minor = HIBYTE(LOWORD(version))
|
13
|
+
eval("Float(#{major}.#{minor})")
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def LOWORD(l)
|
19
|
+
l & 0xffff
|
20
|
+
end
|
21
|
+
|
22
|
+
def LOBYTE(w)
|
23
|
+
w & 0xff
|
24
|
+
end
|
25
|
+
|
26
|
+
def HIBYTE(w)
|
27
|
+
w >> 8
|
28
|
+
end
|
29
|
+
|
30
|
+
module_function :version
|
31
|
+
end
|
data/lib/net/ping/http.rb
CHANGED
@@ -64,11 +64,16 @@ module Net
|
|
64
64
|
# response is considered a failed ping.
|
65
65
|
#
|
66
66
|
# If no file or path is specified in the URI, then '/' is assumed.
|
67
|
+
# If no scheme is present in the URI, then 'http' is assumed.
|
67
68
|
#
|
68
69
|
def ping(host = @host)
|
69
70
|
super(host)
|
70
71
|
bool = false
|
71
|
-
|
72
|
+
|
73
|
+
# See https://bugs.ruby-lang.org/issues/8645
|
74
|
+
host = "http://#{host}" unless host.include?("http")
|
75
|
+
|
76
|
+
uri = URI.parse(host)
|
72
77
|
|
73
78
|
start_time = Time.now
|
74
79
|
|
data/lib/net/ping/icmp.rb
CHANGED
@@ -2,8 +2,7 @@ require File.join(File.dirname(__FILE__), 'ping')
|
|
2
2
|
|
3
3
|
if File::ALT_SEPARATOR
|
4
4
|
require 'win32/security'
|
5
|
-
require '
|
6
|
-
include Windows::SystemInfo
|
5
|
+
require File.join(File.dirname(__FILE__), 'helper')
|
7
6
|
end
|
8
7
|
|
9
8
|
# The Net module serves as a namespace only.
|
@@ -32,7 +31,7 @@ module Net
|
|
32
31
|
def initialize(host=nil, port=nil, timeout=5)
|
33
32
|
raise 'requires root privileges' if Process.euid > 0
|
34
33
|
|
35
|
-
if File::ALT_SEPARATOR &&
|
34
|
+
if File::ALT_SEPARATOR && Windows.version >= 6
|
36
35
|
unless Win32::Security.elevated_security?
|
37
36
|
raise 'requires elevated security'
|
38
37
|
end
|
data/lib/net/ping/ping.rb
CHANGED
data/net-ping.gemspec
CHANGED
@@ -3,7 +3,7 @@ require 'rbconfig'
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |spec|
|
5
5
|
spec.name = 'net-ping'
|
6
|
-
spec.version = '1.6.
|
6
|
+
spec.version = '1.6.1'
|
7
7
|
spec.license = 'Artistic 2.0'
|
8
8
|
spec.author = 'Daniel J. Berger'
|
9
9
|
spec.email = 'djberg96@gmail.com'
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.add_development_dependency('test-unit', '>= 2.5.0')
|
21
21
|
spec.add_development_dependency('fakeweb', '>= 1.3.0')
|
22
|
+
spec.add_development_dependency('rake')
|
22
23
|
|
23
24
|
if File::ALT_SEPARATOR && RUBY_PLATFORM != 'java'
|
24
25
|
spec.platform = Gem::Platform::CURRENT
|
data/test/test_net_ping.rb
CHANGED
@@ -3,6 +3,10 @@
|
|
3
3
|
#
|
4
4
|
# Test case for the Net::PingExternal class. Run this via the 'test' or
|
5
5
|
# 'test:external' rake task.
|
6
|
+
#
|
7
|
+
# WARNING: I've noticed that test failures will occur if you're using
|
8
|
+
# OpenDNS. This is apparently caused by them messing with upstream
|
9
|
+
# replies for advertising purposes.
|
6
10
|
#########################################################################
|
7
11
|
require 'test-unit'
|
8
12
|
require 'net/ping/external'
|
data/test/test_net_ping_wmi.rb
CHANGED
@@ -11,9 +11,9 @@ include Net
|
|
11
11
|
|
12
12
|
class TC_Ping_WMI < Test::Unit::TestCase
|
13
13
|
def self.startup
|
14
|
-
@@windows =
|
14
|
+
@@windows = File::ALT_SEPARATOR
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def setup
|
18
18
|
@host = "www.ruby-lang.org"
|
19
19
|
@wmi = Ping::WMI.new(@host) if @@windows
|
@@ -52,11 +52,11 @@ class TC_Ping_WMI < Test::Unit::TestCase
|
|
52
52
|
assert_boolean(@wmi.ping?)
|
53
53
|
assert_boolean(@wmi.ping?(@host))
|
54
54
|
end
|
55
|
-
|
55
|
+
|
56
56
|
def test_ping_expected_failure
|
57
57
|
omit_unless(@@windows, 'skipped on Unix platforms')
|
58
58
|
assert_false(Ping::WMI.new('bogus').ping?)
|
59
|
-
assert_false(Ping::WMI.new('http://www.asdfhjklasdfhlkj.com').ping?)
|
59
|
+
assert_false(Ping::WMI.new('http://www.asdfhjklasdfhlkj.com').ping?)
|
60
60
|
end
|
61
61
|
|
62
62
|
def test_exception
|
@@ -74,7 +74,7 @@ class TC_Ping_WMI < Test::Unit::TestCase
|
|
74
74
|
@host = nil
|
75
75
|
@wmi = nil
|
76
76
|
end
|
77
|
-
|
77
|
+
|
78
78
|
def self.shutdown
|
79
79
|
@@windows = nil
|
80
80
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-ping
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
5
|
-
prerelease:
|
4
|
+
version: 1.6.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Daniel J. Berger
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-07-17 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: ffi
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: test-unit
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: fakeweb
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,11 +48,24 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: 1.3.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
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
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
62
69
|
description: ! " The net-ping library provides a ping interface for Ruby. It includes\n
|
63
70
|
\ separate TCP, HTTP, LDAP, ICMP, UDP, WMI (for Windows) and external ping\n classes.\n"
|
64
71
|
email: djberg96@gmail.com
|
@@ -69,56 +76,56 @@ extra_rdoc_files:
|
|
69
76
|
- CHANGES
|
70
77
|
- doc/ping.txt
|
71
78
|
files:
|
79
|
+
- CHANGES
|
72
80
|
- doc/ping.txt
|
73
|
-
-
|
74
|
-
-
|
75
|
-
-
|
76
|
-
-
|
77
|
-
- test/test_net_ping_icmp.rb
|
78
|
-
- test/test_net_ping.rb
|
79
|
-
- test/test_net_ping_wmi.rb
|
81
|
+
- examples/example_pingexternal.rb
|
82
|
+
- examples/example_pinghttp.rb
|
83
|
+
- examples/example_pingtcp.rb
|
84
|
+
- examples/example_pingudp.rb
|
80
85
|
- Gemfile
|
81
|
-
- Rakefile
|
82
|
-
- net-ping.gemspec
|
83
|
-
- MANIFEST
|
84
|
-
- CHANGES
|
85
|
-
- lib/net/ping.rb
|
86
|
-
- lib/net/ping/tcp.rb
|
87
|
-
- lib/net/ping/icmp.rb
|
88
|
-
- lib/net/ping/ping.rb
|
89
|
-
- lib/net/ping/wmi.rb
|
90
86
|
- lib/net/ping/external.rb
|
87
|
+
- lib/net/ping/helper.rb
|
91
88
|
- lib/net/ping/http.rb
|
89
|
+
- lib/net/ping/icmp.rb
|
90
|
+
- lib/net/ping/ping.rb
|
91
|
+
- lib/net/ping/tcp.rb
|
92
92
|
- lib/net/ping/udp.rb
|
93
|
+
- lib/net/ping/wmi.rb
|
94
|
+
- lib/net/ping.rb
|
95
|
+
- MANIFEST
|
96
|
+
- net-ping.gemspec
|
97
|
+
- Rakefile
|
93
98
|
- README
|
94
|
-
-
|
95
|
-
-
|
96
|
-
-
|
97
|
-
-
|
99
|
+
- test/test_net_ping.rb
|
100
|
+
- test/test_net_ping_external.rb
|
101
|
+
- test/test_net_ping_http.rb
|
102
|
+
- test/test_net_ping_icmp.rb
|
103
|
+
- test/test_net_ping_tcp.rb
|
104
|
+
- test/test_net_ping_udp.rb
|
105
|
+
- test/test_net_ping_wmi.rb
|
98
106
|
homepage: https://github.com/djberg96/net-ping
|
99
107
|
licenses:
|
100
108
|
- Artistic 2.0
|
109
|
+
metadata: {}
|
101
110
|
post_install_message:
|
102
111
|
rdoc_options: []
|
103
112
|
require_paths:
|
104
113
|
- lib
|
105
114
|
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
115
|
requirements:
|
108
116
|
- - ! '>='
|
109
117
|
- !ruby/object:Gem::Version
|
110
118
|
version: '0'
|
111
119
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
|
-
none: false
|
113
120
|
requirements:
|
114
121
|
- - ! '>='
|
115
122
|
- !ruby/object:Gem::Version
|
116
123
|
version: '0'
|
117
124
|
requirements: []
|
118
125
|
rubyforge_project: shards
|
119
|
-
rubygems_version:
|
126
|
+
rubygems_version: 2.0.3
|
120
127
|
signing_key:
|
121
|
-
specification_version:
|
128
|
+
specification_version: 4
|
122
129
|
summary: A ping interface for Ruby.
|
123
130
|
test_files:
|
124
131
|
- test/test_net_ping.rb
|