== 2.0.1 - 5-Aug-2015
* Fix broken gemspec. PR #9 by @shockwavenn

== 2.0.0 - 5-Aug-2015
* Add ability to ping ipv6 ip. PR #4 by @deuxclique
* Minor refactoring of the ping?/pingecho aliases, and fixed a timer glitch in Net::Ping::TCP. PR#7 by @epitron

== 1.7.7 - 22-Jan-2015
* Pull request #1 from Mike George. This fixes domains which have http in them.

== 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.

== 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
  spot.
* 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
  spot.
* 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 IO.select 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 https://bugs.ruby-lang.org/issues/8645 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
  Net::HTTP.get_response.
* The PingHTTP.new method now has a default port of 80.
* Minor doc update for PingHTTP.new.

== 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=,
  respectively.
* 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
  configurable
* 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.
