CHANGES ------- 2.41 Mar 17 09:35 2013 Bugfixes - Windows Vista does not appear to support inet_ntop(). It seems to have InetNtop() instead. So, working around by using getnameinfo() and passing in the NI_NUMERICHOST to get an IP address. Features - Change Net::Ping to use Time::HiRes::time() instead of CORE::time() by default. For most successful cases, CORE::time() returned zero. 2.40 Mar 15 11:20 2013 Bugfixes - several fixes to tests to stop the black smoke on Win32's and Cygwin since the core updated the module to Test::More. I had planned a later release, but all the black smoke is forcing a release. - fixes to some skips in tests that were still using the Test style skip's. - Documentation fix for https://rt.cpan.org/Ticket/Display.html?id=48014. Thanks to Keith Taylor - Instead of using a hard-coded TOS value, import IP_TOS from Socket. This fixes an outstanding bug on Solaris which uses a different value for IP_TOS in it headers than Linux. I'm assuming other OS's were fixed with this change as well. Features - added TTL handling for icmp pings to allow traceroute like applications to be built with Net::Ping. Thanks to for the patch and tests! Internals - replaced SOL_IP with IPPROTO_IP. SOL_IP is not portable and was hard-coded anyway. - added IPPROTO_IP, IP_TOS, IP_TTL, and AF_INET to the list of Socket constants imported. - removed some hard-coded constants. - converted all calls to inet_ntoa() to inet_ntop() in preparation for further ipv6 updates. Infrastructure - Makefile.PL updated to require Test::More, Time::HiRes, and a recent Socket - several changes for github hosting - add a .gitignore file - added a .travis.yml file to allow CI testing with changes pushed to github - replaced the README with a README.md which displays the Travis CI build status on github. 2.39 Mar 13 09:25 2013 - patch from Matthew Musgrove to resolve RT #45812. Thanks! - pulled in several changes from the Perl core 2.36 Jun 08 12:00 2009 - release to include a few fixes from the Perl core 2.35 Feb 08 14:42 2008 - Patch in Perl change #33242 by Nicholas Clark 2.34 Dec 19 08:51 2007 - Release primarily to prevent problems with the Perl core in preparation for the Perl 5.10 release. No real bug fixes, but text fixes are included. - skip test t/510_ping_udp.t on Windows Vista. Thanks to Jan Dubois for the code to test for Vista. - t/510_ping_udp.t should check for a udp echo port, not a tcp echo port. 2.33 Jul 31 20:15 2007 - add new method port_number() rather than asking users to twiddle with the internals of Net::Ping to probe a specific port. This should resolve a few bugs where the documentation was lacking. - apply patch from bergonz at labs.it. This patch resolves several problems logged regarding using Net::Ping in a multi- threaded program. Thanks so much! 2.32 Jul 30 21:30 2007 - new co-maintainer Steve Peters - integrate assorted bleadperl fixes from the past four years 2.31 Jun 28 14:00 2003 - Win32 Compatibility fixes. Patch by mhx-perl@gmx.net (Marcus Holland-Moritz) - Apply bleadperl patch #22204 - Add ToS support. Patch by martin@lorensen.dk (Martin Lorensen) 2.30 Apr 18 14:00 2003 - Fix select() bug for UDP and ICMP protocols in case packet comes from wrong source or seq. - Allow UDP ping to different IP addresses without instantiating a new object. - Add retrans() method to customize or disable backoff factor for udp pings. Thanks Torgny.Hofstedt@sevenlevels.se - Let ECONNRESET be considered reachable for UDP pings. Now it works for cygwin. Spot by jhi@iki.fi (Jarkko Hietaniemi). 2.29 Apr 12 15:00 2003 - Implement "double send()" concept for udp pings. See: Thanks to rdw @ perlmonks. - Send multiple udp packets in case of loss. - Exponential backoff code swiped from Net::DNS Thanks to mike@fuhr.org (Michael Fuhr). - Also allows to capture udp ECONNREFUSED condition. - Rename tcp_service_check method to service_check. - Allow demo/fping -s to force service check. Idea by ralijani@yahoo.com (REZA Alijani) - Fix return from ping to be compatible with wantarray when the host doesn't even resolve. - Add udp proto test to test suite. - VMS patch from Craig Berry to pre-check echo. - Apply bleadperl patch (change #18904) - Apply bleadperl patch as explained: http://www.xray.mpe.mpg.de/mailing-lists/perl5- porters/2003-03/msg00992.html 2.28 Jan 23 18:00 2003 - No new features. Bug fixes only. - Fixed ICMP_STRUCT to work on Big Endian platforms. Thanks to danb@thelittlemacshop.com (Dan Buettner) for testing on Mac OS X 10.2.3 and many others for testing on Big Endian boxes. - Not do binmode(). Causes more problems than helps. - Perl 5.004 compatibility fixes (Spot by Honza). 2.27 Jan 15 23:00 2003 - Patch by slebedev@iwl.net (Sergey Lebedev): - 1) Fixed response packet parsing offsets in ping_icmp. - 2) Added icmp_result method. - Patch by radu@netsoft.ro (Radu Greab): - 1) Changed ping_tcp() to use non-blocking connect instead of alarm() interface in order to avoid conflicts with user applications. - 2) Also get rid of all eval {} code in ping_tcp in order to avoid catching SIGALRM trigger and to avoid conflicts with other evals. - 3) Avoid ioctl() syscall for more accurate error detection on non-blocking tcp connects. - 4) Fix fcntl() syntax usage. - Patch by adelton@fi.muni.cz (Honza Pazdziora): - 1) Fix icmp request pack code to be more platform independent regardless of Big/Little Endian. - 2) Use binmode for filehandle in case perl 5.8.0 tries to dink with the data stream. - Other changes by Rob Brown: - Fixed ack() failures under certain rare conditions. - Use more appropriate \z instead of $ in regex. - Resolved Cygwin "make test" problems reported by h.m.brand@hccnet.nl (H.Merijn Brand). - Add sending a real ICMP packet in the test suite. - Add Socket to PREREQ_PM (missing on some boxes?) - Adjust syn_forking IPC pipe for fatter Win32 pids. - Better handling of alarm() in test suite for Win32. - Add a DESTROY method to reduce chances of lingering connect-choking children. 2.26 Dec 02 12:00 2002 - More compatibility fixes. - Thanks for Solaris bug reports: Paul.Gaborit@enstimac.fr (Paul Gaborit) Jost.Krieger@ruhr-uni-bochum.de (Jost Krieger) - Thanks for Solaris testing box: Gunther.Heintzen@rrze.uni-erlangen.de (Gunther Heintzen) - Solaris ENOTCONN select() for write choke bug. - Thanks for Cygwin bug reports: h.m.brand@hccnet.nl (H.Merijn Brand) - Cygwin "EAGAIN instead of ECONNREFUSED" buttwag. 2.25 Nov 19 12:00 2002 - Handle condition where O_NONBLOCK tcp connects immediately fail without EINPROGRESS (certain platforms or SMP optimizations). 2.24 Oct 21 22:00 2002 - Compatibility fixes. - Avoid using 127.1.1.1 and 127.2.2.2 because it breaks on some platforms (Irix). - Handle condition where nonblocking tcp connects immediately connect on some platforms (solaris and freebsd) and to be SMP safer. - Win32 $p->ack( $host ) method should now work. - Add ack( $host ) test cases to test suite. 2.23 Oct 18 22:00 2002 - Fix ack() fd "each" detection bug. - Add nack() method for OO interface to the reason why the ack() failed. - Fix premature "Timed out" side effect when a different specified ack( $host ) fails. - IO::Socket::INET ephemeral port buttwag hack for the t/450_service.t test. - Documental changes. 2.22 Oct 17 16:00 2002 - Add $p->tcp_service_check() method to enforce remote tcp service availability checking. Patch by jef@linuxbe.org (Jean-Francois Dive). - Changed default behavior of "syn" protocol to disabled tcp_service_check instead of enabled. - Win32 compatibility changes ("syn" protocol). - Increase timeouts for tests in case client or server network(s) are busy. 2.21 Oct 14 12:00 2002 - Preserve/restore ALRM settings for tcp mode pings. Spot by d@niel-berlin.de (Daniel Berlin) - Can now select device for udp and icmp protocols. Patch by sarfata@altern.org (Thomas Sarlandie). - Add new "syn" protocol to allow for mass parallel (synchronous) TCP service reachability checking. - Add ack() method to utilize non-blocking connect (SYN/ACK) feature of the "syn" protocol. - Add demo/fping script as a "syn" demonstration. - Compatibility patches for cygwin. Spot by frazee.23@osu.edu (Joseph Frazee) 2.20 Jun 20 10:00 2002 - Perl 5.8.0 compatibility stuff. Spot by dcd@tc.fluke.com (David Dyck). And patch by jhi@iki.fi (Jarkko Hietaniemi). - Move INSTALL doc into perldoc. - Allow source_verify method to work for icmp protocol as well as udp. Spot by taner@taner.net (Taner Halicioglu) 2.19 Jun 03 19:00 2002 - Add $p->source_verify method to skip source endpoint verification of udp protocol pings for those remote destinations with multiple interfaces that may have the "reverse telnet" bug. Spot by dcd@tc.fluke.com (David Dyck) - Moved files to more standard locations. - Less common martian used for ping test to reduce conflicts 2.18 May 06 12:00 2002 - More RPM spec generalizations. 2.17 May 03 18:00 2002 - RPM spec generalizations. michael.mclagan@linux.org (Michael McLagan) - Win32 compatibility changes. (Didn't compile on Win32 since v2.11.) 2.16 Apr 11 14:00 2002 - Documentation changes. - Added INSTALL doc. - Added README to rpm %doc. - Added neat MakeMaker constants routine. - Buttwag around Makefile.PL warnings: o "the following files are missing in your kit" o "is not a known MakeMaker parameter name" 2.15 Apr 06 23:00 2002 - Added ABSTRACT info. - Allow for smoother upgrade from from older Net::Ping versions. - Change default protocol from udp to tcp so it will work on most default systems without any arguments to new(). 2.14 Apr 01 14:00 2002 - Added text ip lookup feature. e@arix.com (Erick Calder) 2.13 Apr 01 14:00 2002 - Added ping time measuring feature. e@arix.com (Erick Calder) - Optionally allow for high resolution precision for timeouts and measuring using the Time::HiRes module (Erick). 2.12 Feb 17 19:00 2002 - More general error determination for better cross platform consistency and foreign language support. Spotted by arnaud@romeconcept.com - Test changes for VMS (Craig Berry) 2.11 Feb 02 12:00 2002 - Test changes in case echo port is not available. - Fix 110_icmp_inst.t to use icmp protocol Spotted by craigberry@mac.com (Craig Berry) 2.10 Dec 26 12:00 2001 - Added bind() function useful for clients with multiple network interfaces performing the ping check thanks to sethb@clarkhill.com (Seth Blumberg). - Execution optimizations for several constants (Seth). - More test changes in case Socket module is not available (Jarkko Hietaniemi). 2.09 Dec 06 19:00 2001 - Documental and test changes only. - No functional changes. 2.08 Dec 04 13:00 2001 - Faster response for Win32 tcp_connect. - Better explanations in test comments. 2.07 Nov 28 13:00 2001 - Compatibility changes - Works with UNIX and Win32 OS - Works with Perl 5.005 5.6.x 5.7.x 5.8.x - Applied several patches from distro - External protocol added thanks to colinm@cpan.org (Colin McMillen) - Stream protocol added thanks to bronson@trestle.com (Scott Bronson) 2.06 Nov 19 12:00 2001 - Added Net-Ping.spec for RPM to easily utilize using "rpm -ta Net-Ping*tar.gz" - Moved Copyright section to perldoc 2.05 Nov 18 20:00 2001 - Added test suite 2.04 Nov 16 16:00 2001 - Added CHANGES and README to tarball. - No functional changes. 2.03 Nov 15 12:00 2001 - Portability adjustments to ping_tcp() made by Rob Brown to work with most default systems. 2.02 Sep 27 12:00 1996 - Magic version by Russell Mosemann from CPAN