Fetching contributors…
Cannot retrieve contributors at this time
347 lines (306 sloc) 15.4 KB
== 1.7.6 - 13-Dec-2014
* Changed TCP handling yet again, as it was returning false positives. Thanks
go to Marcos Piccinini for the spot.
* Now uses relative_require internally.
* Minor tweaks to the gemspec and Rakefile for JRuby.
== 1.7.5 - 2-Nov-2014
* Added packet count and intervals for external pings. Thanks go to Jack Hayter
for the patch.
* No longer report closed TCP port as active. Thanks go to Joshua Yanovski for
the spot and patch.
== 1.7.4 - 16-Apr-2014
* Remove the Timeout block for the Ping::HTTP class because it wasn't working
with JRuby. Instead, we use the builtin open_timeout and read_timeout
accessors on the underlying http request. Thanks go to Ian Heggie for the
* The Ping::HTTP#ping? more robustly parses out the port from the uri argument
if provided. In addition, the default port is again set back to 80 as a
last resort in the constructor.
* Added timeout and port tests for the Ping::HTTP class.
* If a host is unreachable explicitly set the result to false regardless of
the actual exit status. This appears to only affect Windows 7 and later.
* Reinstated the Timeout block for the Ping::ICMP class. Without it, threaded
pings could end up in an infinite loop. Thanks go to muirmanders for the spot.
== 1.7.3 - 3-Apr-2014
* Removed the Timeout block for the Ping::External class as it apparently
hasn't worked with open3 for some time. Instead, it now uses your command
line ping's timeout switch. Thanks go to Andrea Bernardo Ciddio for the
* Made ICMP pings thread safe. I think.
* Removed a redundant Timeout block in the Ping::ICMP class.
* If an ICMP ping times out, the exception attribute is set to "timeout".
* Added explicit support for AIX for the Ping::External class.
* Bumped minimum required Ruby version to 1.9.3.
== 1.7.2 - 21-Jan-2014
* Fixed a bug in the Ping::HTTP constructor where it was not honoring the
port if provided as the second argument. Thanks go to Florian Anderiasch
for the spot.
* Removed win32-open3 require in the Ping::External class since it isn't
needed in Ruby 1.9.x or later.
* Refactored the Ping::External class so that it checks the exit status rather
than try to parse output. Thanks go to Miguel Tubia for the suggestion.
* Dropped explicit support for Windows XP.
* Removed reference to win32-open3 in README.
== 1.7.1 - 26-Sep-2013
* Fixed a bug in the Ping::TCP class where it could return nil instead
of false. Thanks go to Grandy Nguyen for the patch.
== 1.7.0 - 25-Aug-2013
* Now requires Ruby 1.9.x or later.
* Replaced the main ping code for the Ping::TCP class. The timeout module
really doesn't work very well with sockets, and so a raw socket approach
combined with is now used instead.
* Updates to the doc/ping.txt file.
== 1.6.2 - 8-Aug-2013
* Fixed a bug in the ICMP ping helper module. Thanks go to Yuichi
Tsunematsu for the spot.
* The win32-security library is not just a development dependency. Thanks
again go to Yuichi Tsunematsu for the spot.
* Updated the icmp ping tests.
* Updated the gemspec for MS Windows.
== 1.6.1 - 17-Jul-2013
* Automatically set the scheme to "http" if not present when performing
HTTP pings. See for an issue
with the uri library that led to this change. Thanks go to Preston Lee
for the spot.
* Removed the windows/system_info dependency, since it added other
dependencies just to check the Windows version. Instead, I added a
helper file that adds some needed Windows functions using FFI.
* Added Rake as a development dependency and updated the Gemfile
source because Bundler. Thanks to Jean-Philippe Doyle for the patches.
* Added some warning text to the Net::Ping::External tests for users
who are using OpenDNS. In short, you will probably get test failures
and surprising true results for bad hosts.
== 1.6.0 - 19-Mar-2013
* Split out the ldap portion of the code into its own branch.
* Don't require resolv-replace on Ruby 1.9.3 or later.
* Now gets proxy information from the http_proxy, https_proxy, and
no_proxy environment variables and uses that when making requests.
Thanks go to Kevin Olbrich for the patch.
== 1.5.3 - 29-Feb-2012
* Removed the Windows::Console dependency and replaced it with FFI since there
were only two functions needed. This had the nice side effect of making it
work with JRuby, too.
* Minor cleanup on some multi-variable assignment.
* Fixed require statements and one test for 1.9.
== 1.5.2 - 4-Nov-2011
* The Net::Ping::HTTP class now defaults to using HEAD instead of GET
for its ping test. You can alter this via the get_request accessor.
Thanks got to Balazs Kutil for the patch.
* Added the ssl_verify_mode accessor to the Net::Ping::HTTP class, which
defaults to VERIFY_NONE. This fixes possible warnings resulting from
missing SSL certificates when using https. Thanks go to Balazs Kutil
for the patch.
== 1.5.1 - 15-Sep-2011
* Use RbConfig on Ruby 1.9 and later. Thanks go to Torsten Schönebaum
for the patch.
== 1.5.0 - 3-May-2011
* Added the Net::Ping::LDAP class which allows you to perform LDAP pings.
Thanks go to Paul Gallagher for adding this.
* The duration instance variable is now reset to nil on a failed ping. Again,
thanks go to Paul Gallagher.
== 1.4.1 - 17-Mar-2011
* Incorporated changes from Lukas Zapletal that alters the icmp tests to use
your localhost instead of going outside the network.
* The http tests were similarly modified courtesy of fakeweb, which is now a
development dependency. Again, change from Lukas Zapletal.
* The icmp tests were reworked for Windows Vista and later. This required the
addition of the win32-security library as a development dependency.
* The Net::Ping::WMI class is no longer skipped on require or in tests since
JRuby now supports win32ole.
== 1.4.0 - 14-Feb-2011
* Added the redirect_limit accessor for the Net::Ping::HTTP class. This caps
the number of redirects that are allowed before a ping is considered a
failure. The default is 5.
* Changed the way in which redirects are detected. Previously I was checking
against the response class, but decided this was unreliable. I now check the
response code itself. Any code in the 300 range is considered a redirect.
* The default port for the Net::Ping::HTTP class is no longer explicitly set
to 80, but instead uses the result of the URI.parse(uri).port method by
default. Note that you can still override the port if you explicitly provide
one in the constructor.
* The Net::Ping::HTTP class now handles https URI's properly. Note that you may
get a warning about peer certificates.
== 1.3.7 - 14-Oct-2010
* Wrapped the ICMP ping in a while loop that breaks on success to prevent
the ping from failing too early. Thanks go to Benny Holmgren for the
spot and the patch.
== 1.3.6 - 4-Sep-2010
* Fixed variable naming issue in Net::Ping::External. Thanks go to taw
for the spot.
* Added a default Rake task.
* Refactored the tests for Net::Ping::External to take advantage of the
features of test-unit 2.x.
== 1.3.5 - 3-Sep-2010
* Allow for custom user agent in Net::Ping::HTTP. Thanks go to Michael
Reinsch for the patch.
== 1.3.4 - 25-Jun-2010
* Fixed a dumb platform bug. Thanks go to Jason Frey for the spot.
== 1.3.3 - 21-Jun-2010
* Bug fixes for JRuby on MS Windows. The code now explicitly checks for JRuby
in a few places to ensure it doesn't try to load unsupported libraries
on MS Windows. Thanks go to Rob Schultz for the spot and some patches.
* The Net::Ping::HTTP class will no longer fail because a root URI
is missing a trailing slash. If the URI#path is empty, it now defaults
to the root path.
* The Rakefile tasks and naming were refactored.
* Some tests were refactored to take advantage of test-unit 2.x features,
as well as make them better and more descriptive in general.
== 1.3.2 - 21-Sep-2009
* Doing a 'require "net/ping"' was not automatically loading the
Net::Ping::WMI class on MS Windows. This has been fixed. Thanks go to
Joseph M. for the spot.
* Removed all $LOAD_PATH mangling for both the library and tests.
* Fixed a bug in the Net::Ping::HTTP class where a failed redirect did
not set the @exception and @warning instance variables properly.
* The PingStatus struct returned by Net::Ping::WMI is now frozen.
* The test-unit library was switched from a runtime dependency to a
development dependency.
* Added the :gem Rake task that builds a gem.
* Updated the :gem_install task to use the :gem task as a prerequisite.
* Updated the dependencies for MS Windows.
* The Rake test tasks are now more Rakish, e.g. test:tcp instead of test_tcp.
* Renamed example file names to avoid any potential confusion with actual
test files.
== 1.3.1 - 22-Jul-2009
* Removed class aliases, e.g. use Ping::External, not PingExternal.
* Minor code change to eliminate a warning that popped up in 1.9.x.
* The win32-open3 library is removed as a dependency for Ruby 1.9.x.
* Changed license to Artistic 2.0.
* Some gemspec and README updates.
== 1.3.0 - 19-May-2009
* Added the Ping::WMI class for MS Windows. This class encapsulates the
Win32_PingStatus WMI class. Unlike other ping methods, this one returns
a struct that contains various bits of information.
* The Net::Ping::External class now ensures that handles opened by the open3
call are closed. Thanks go to Nick S. Kanakakorn for the spot and a
preliminary patch.
* The Net::Ping::ICMP class now explicitly closes the socket if the call to
the Socket.pack_sockaddr_in method fails.
* Some documentation updates.
== 1.2.3 - 13-Jan-2008
* Fixed a bug in the checksum private method where it would die on odd data
sizes. Thanks go to Jake Douglas for the spot.
* A Socket.get_sockaddr_in call in the Ping::ICMP class is no longer included
as part of the overall ping time. Thanks go again to Jake Douglas for
the spot.
* Added data_size tests to the Ping::ICMP test suite.
* Renamed and updated the test files. The test-unit 2.x gem is now a
prerequisite as a result.
== 1.2.2 - 22-Jan-2008
* Bug fix for Ping::External where it was not honoring the timeout value.
Thanks go to Chris Morris for the spot and the patch.
* Bug fix for Ping::External where non-English output could cause false
positives on MS Windows Vista or later. This library now requires the
windows-pr library on MS Windows systems as a result.
* Added the Ping::UDP.service_check and Ping::UDP.service_check= class
methods. This method controls whether or not Errno::ECONNREFUSED or
Errno::ECONNRESET are considered successful pings or not.
* The Ping::HTTP class no longer uses the resolv-replace library on MS Windows
because it was (ironically) causing timeouts.
* Changed the Ping::TCP.econnrefused method to Ping::TCP.service_check. I
changed it because I now use a similar method in Ping::UDP, but that handles
more than Errno::ECONNREFUSED. An alias is provided to provide backwards
compatibility, but it is considered deprecated and will be removed in the
1.3.0 release.
* Removed the install.rb file. The Rakefile now handles installation.
== 1.2.1 - 6-Apr-2007
* For the Ping::External class, if a ping attempt results in 100% packet loss
it is now considered a failed ping, regardless of whether or not an error
was sent to stdout.
* Fixed the Ping::External class for OS X.
* Added a Rakefile. Installation and testing should now be run via Rake tasks.
* Minor fix for the Ping::ICMP class where I had accidentally dup'd some
aliases. This was harmless, but did cause warnings with -w.
== 1.2.0 - 5-Dec-2006
* Internal reorganization - each class now lives in its own file.
* Added the Ping::ICMP class. Thanks go to Jos Backus for contributing a
large part of the code.
* The host argument is now optional in the constructor. You can now specify
it in the ping method instead. Note that it must be specified in one place
or the other.
* Each PingXXX class is now Ping::XXX instead. However, class name aliases
have been setup for backwards compatibility for now.
* The constructor for each Ping types now yields self.
* Added the pingecho alias for the ping method for each Ping type.
* Added the Ping::HTTP#follow_redirect accessor.
* The Ping::HTTP#ping method now honors the timeout value.
* The Ping::HTTP class now follows redirects automatically, though this is
configurable with the follow_redirect accessor.
* The Ping::TCP.ecr and Ping::TCP.ecr= methods are now true class method
aliases (they were just wrappers previously).
* The Ping::UDP class now enforces a 64 character limit on data that can be
sent on a udp ping.
* Updated the gemspec. Specifically, MS Windows now has a dependency on
the win32-open3 package.
* Added inline rdoc.
== 1.1.1 - 15-Jun-2006
* Fixed a bug in PingTCP (bad variable name). Thanks go to Anoop Chandran
for the spot.
* Minor variable name refactoring.
* Minor test updates.
== 1.1.0 - 17-Jul-2005
* Fixed a bug in the PingHTTP#ping method where I was accidentally passing
the timeout value instead of the port number as the third argument to
* The method now has a default port of 80.
* Minor doc update for
== 1.0.1 - 22-Jun-2005
* Bug fix for the install.rb file. The gem is unaffected.
== 1.0.0 - 14-Jun-2005
* Renamed project from net-pingsimple to just net-ping.
* Added a PingHTTP subclass.
* Moved project to RubyForge.
* Added a gemspec.
== 0.3.1 - 9-Apr-2005
* Updated PingExternal to use win32/open3 on Win32 platforms.
* Minor error handling change for the PingSimple.econnrefused= method. It now
raises an ArgumentError if any values other than true or false are passed.
* PingSimple#warning and PingSimple#exception are now read-only methods.
* The warning and exception attributes are now reset to nil between each call
to ping.
* The data and data= methods are now unique to the PingUDP class.
* The time and time= methods have been changed to timeout and timeout=,
* Removed the pingsimple.rd and pingsimple.html files. The pingsimple.txt file
has been reorganized and is now rdoc friendly.
* Added a few sample programs under the 'examples' directory.
* Some minor test updates and changes.
* Removed the INSTALL file. That information is now in the README file.
* Now requires Ruby 1.8.0 or later.
== 0.3.0 - 12-Feb-2004
* Fixed ping string for PingExternal class based on platform. The old
string was really only good for Linux and *BSD.
* Added Win32 support (requires win32_popen package).
* Added warranty info.
== 0.2.3 - 12-Aug-2003
* Fixed a bug in PingExternal that could consume file descriptors if used in a loop
* Added some initialization to avoid -w warnings
* Removed VERSION() class method. Use the constant instead
* Modified test suite slightly
* Moved rd2 docs to doc directory
== 0.2.2 - 3-Apr-2003
* Fixed handling of stdout in PingExternal
== 0.2.1 - 27-Mar-2003
* Fixed major bug with PingExternal class with regards to down hosts
* Exceptions and warnings from PingExternal are now chomp'd
* Modified test suite
* Doc updates
== 0.2.0 - 14-Feb-2003
* The default behavior of PingTCP with regards to ECONNREFUSED is now
* Added a VERSION constant and method (to the base class)
* Added a test suite (for those with testunit installed)
* Doc changes, rearrangement and general cleanup
* Manifest is now MANIFEST
* Added an INSTALL file
== 0.1.0 - 9-Dec-2002
* Added ping? alias for ping method
* Warnings now handled separately
* Corrected a mis-named variable in Ping::External
* Fixed the install.rb file
* Updated and added docs
* Renamed tarball to net-pingsimple to reflect RAA naming convention
== 0.0.1a
* Did this release ever happen?
== 0.0.1
* Initial release.