Sebastian Harl [Fri, 17 Jul 2009 12:41:12 +0000 (14:41 +0200)]
src/liboping.c: Catch NULL pointers passed to public functions.
Libraries should not segfault - ever - no matter what a user is doing and how
stupid that might be.
Sebastian Harl [Fri, 17 Jul 2009 12:20:01 +0000 (14:20 +0200)]
Added .gitignore.
Sebastian Harl [Fri, 17 Jul 2009 08:05:38 +0000 (10:05 +0200)]
src/liboping.c: Let ping_setopt() return -1 if 'value' is NULL.
The manpage states that 'value' must not be NULL. Anyway, imho, it's still
better to avoid segfaults inside a library.
Florian Forster [Fri, 17 Jul 2009 12:32:56 +0000 (14:32 +0200)]
src/liboping.c: Fix some format strings.
Sebastian Harl [Fri, 17 Jul 2009 07:41:58 +0000 (09:41 +0200)]
src/liboping.c: Fixed the handling of multiple hosts.
ping_receive_all() used to always pass the first host object to
ping_receive_one() which used that host object to determine the expected
address family. Thus, when pinging v4 and v6 hosts in parallel, some of them
would have never been considered but assumed to be timed out.
While at it, the code has been clarified in regard to matching an ECHO_REPLY
with the appropriate host object.
Sebastian Harl [Fri, 17 Jul 2009 07:39:35 +0000 (09:39 +0200)]
src/liboping.c: Do not reset recv_ttl in ping_receive_one().
Instead, reset the value of all host object in ping_receive_all().
ping_receive_one() does not necessarily get a pointer to the host object for
which we receive a reply, since ICMP messages may be received on _any_ raw
socket.
Sebastian Harl [Sat, 6 Jun 2009 19:25:38 +0000 (21:25 +0200)]
Minor documentation fixes.
Sebastian Harl [Sat, 6 Jun 2009 19:21:28 +0000 (21:21 +0200)]
src/oping.c: Exit successfully when using the -h option.
Sebastian Harl [Sat, 6 Jun 2009 19:18:23 +0000 (21:18 +0200)]
src/oping.c: Improved the help output.
A short description has been added for each option. Also, print the program
version and author.
Sebastian Harl [Sat, 6 Jun 2009 19:09:33 +0000 (21:09 +0200)]
src/oping.c: Improved and unified error messages when parsing CL options.
Florian Forster [Wed, 15 Jul 2009 12:13:29 +0000 (14:13 +0200)]
Bumped version to 1.2.0; Updated ChangeLog.
Florian Forster [Wed, 15 Jul 2009 11:35:13 +0000 (13:35 +0200)]
AUTHORS: Add Dan Sully.
Florian Forster [Wed, 15 Jul 2009 11:34:53 +0000 (13:34 +0200)]
oping(8): Document the new `-f' option.
Florian Forster [Wed, 15 Jul 2009 11:11:27 +0000 (13:11 +0200)]
src/oping.c: Change some codig style.
Florian Forster [Wed, 15 Jul 2009 11:09:48 +0000 (13:09 +0200)]
src/oping.c: Only treat "-" as STDIN, not all strings beginning with "-".
Dan Sully [Mon, 15 Jun 2009 19:17:53 +0000 (12:17 -0700)]
Allow reading of files containing hostnames.
Signed-off-by: Dan Sully <daniel-github@electricrain.com>
Signed-off-by: Florian Forster <octo@verplant.org>
Florian Forster [Wed, 15 Jul 2009 09:33:33 +0000 (11:33 +0200)]
src/liboping.c: Check if IPPROTO_IPV6 and IPV6_RECVHOPLIMIT are defined.
Sebastian Harl [Sat, 6 Jun 2009 12:47:42 +0000 (14:47 +0200)]
src/liboping.c: Made sstrerror() static.
This is a private helper function only.
Florian Forster [Sun, 5 Apr 2009 07:49:19 +0000 (09:49 +0200)]
Bumped version to 1.1.2; Updated ChangeLog.
Florian Forster [Fri, 3 Apr 2009 13:54:16 +0000 (15:54 +0200)]
src/liboping.c: Check if pointer is NULL before dereferencing it in `ping_receive_ipv4'.
Thanks to Tomasz Pala for pointing out the problem.
Florian Forster [Mon, 23 Mar 2009 08:57:43 +0000 (09:57 +0100)]
src/oping.h: Bump the OPING_VERSION, too.
Florian Forster [Mon, 23 Mar 2009 08:52:36 +0000 (09:52 +0100)]
Bumped version to 1.1.1; Updated ChangeLog.
Florian Forster [Mon, 23 Mar 2009 08:34:37 +0000 (09:34 +0100)]
src/liboping.c: Use ph-addrfamily to determine the protocol type.
Vladimir V. Melnikov [Mon, 23 Mar 2009 08:30:26 +0000 (09:30 +0100)]
src/liboping.c: Be more fault-tolerant when checking for the TTL.
If it's not included in the auxiliary data, fall back to the value
included in the IPv4 header which is provided via the raw socket.
Vladimir V. Melnikov [Mon, 23 Mar 2009 08:29:31 +0000 (09:29 +0100)]
src/liboping.c: Only include <stdint.h> if the configure script found it.
Florian Forster [Mon, 23 Mar 2009 08:24:54 +0000 (09:24 +0100)]
build system: Actually link with libxnet and use CPPFLAGS.
(Instead of CFLAGS.)
Vladimir V. Melnikov [Mon, 23 Mar 2009 08:22:01 +0000 (09:22 +0100)]
src/liboping.c: Added compatibility with old Solaris versions.
Apparently the X/Open conforming `recvmsg' function is in the `xnet'
library. Check for this library and use it if it exists.
Also set the ominous MSG_XPG4_2 flag. Didn't find out what it does, but
apparently it's a Solaris internal flag..
Florian Forster [Mon, 23 Mar 2009 07:53:28 +0000 (08:53 +0100)]
Net::Oping: Improve the POD a little.
Florian Forster [Mon, 23 Mar 2009 07:53:15 +0000 (08:53 +0100)]
build system: Define ABI and API versions in the configure script.
Florian Forster [Sun, 15 Mar 2009 12:57:32 +0000 (13:57 +0100)]
bindings/perl: Bumped version to 1.10; Updated Changes.
Florian Forster [Sun, 15 Mar 2009 13:03:15 +0000 (14:03 +0100)]
bindings/perl: Add some more simple syntax tests.
Florian Forster [Sun, 15 Mar 2009 12:47:32 +0000 (13:47 +0100)]
bindings/perl: Add the `ttl' method.
Florian Forster [Sun, 15 Mar 2009 13:16:19 +0000 (14:16 +0100)]
bindings/perl: Add the `get_recv_ttl' method.
Florian Forster [Sun, 15 Mar 2009 11:13:17 +0000 (12:13 +0100)]
Bumped version to 1.1.0; Updated ChangeLog.
Florian Forster [Sun, 15 Mar 2009 10:58:50 +0000 (11:58 +0100)]
AUTHORS: Added contributors so far.
Florian Forster [Sun, 15 Mar 2009 10:47:43 +0000 (11:47 +0100)]
src/oping.c: Allow setting of the TTL using `-t'.
Florian Forster [Sun, 15 Mar 2009 10:41:20 +0000 (11:41 +0100)]
src/liboping.c: When setting the TTL, update all existing pinghost_t, too.
Florian Forster [Sun, 15 Mar 2009 10:27:39 +0000 (11:27 +0100)]
manual pages: Fix some more typos.
Florian Forster [Sun, 15 Mar 2009 10:24:40 +0000 (11:24 +0100)]
src/oping.c: Print the received TTL, too.
Florian Forster [Sun, 15 Mar 2009 10:24:20 +0000 (11:24 +0100)]
src/liboping.c: Add debugging output to the TTL setting code.
Florian Forster [Sun, 15 Mar 2009 10:21:57 +0000 (11:21 +0100)]
manual pages: Fix some minor issues and typos.
Florian Forster [Sun, 15 Mar 2009 10:21:21 +0000 (11:21 +0100)]
src/liboping.c: Provide the TTL on received packets.
Thanks to Vladimir V. Melnikov for the suggestion and initial patch.
Florian Forster [Thu, 12 Mar 2009 07:48:10 +0000 (08:48 +0100)]
src/liboping.c: Make -Wextra happy.
Removed an unused parameter.
Florian Forster [Thu, 12 Mar 2009 07:39:07 +0000 (08:39 +0100)]
ping_setopt(3): Document the PING_VERSION define.
A typo if fixed, too.
Florian Forster [Thu, 12 Mar 2009 07:38:21 +0000 (08:38 +0100)]
src/oping.c: Allow shorter interval settings.
Previously, only 1/5s was allowed. Now everything down to 1/1000s is
accepted.
Florian Forster [Thu, 12 Mar 2009 07:37:10 +0000 (08:37 +0100)]
src/oping.c: Use `context_destroy' to free the context.
Florian Forster [Thu, 12 Mar 2009 07:36:39 +0000 (08:36 +0100)]
src/oping.c: Make all functions (except `main') static.
Florian Forster [Thu, 12 Mar 2009 07:35:55 +0000 (08:35 +0100)]
src/liboping.c: Remove dead code which broke strict aliasing rules.
Thanks to Alan Pevec for the pointer.
Florian Forster [Thu, 12 Mar 2009 07:34:51 +0000 (08:34 +0100)]
src/liboping.c: Use thread-safe error handling.
I. e. move to `strerror_r'.
Florian Forster [Tue, 17 Feb 2009 13:56:22 +0000 (14:56 +0100)]
src/{lib,}oping.c: Fix a few problems -Wextra has found.
Florian Forster [Tue, 17 Feb 2009 13:52:33 +0000 (14:52 +0100)]
src/{lib,}oping.c: Don't cast `size_t' to `unsigned int' when printing.
Use the "%zu" format string instead.
Florian Forster [Tue, 17 Feb 2009 13:42:02 +0000 (14:42 +0100)]
src/mans/*.pod: Updated copyright information.
Florian Forster [Tue, 17 Feb 2009 13:31:49 +0000 (14:31 +0100)]
Bumped version to 1.0.0.
Florian Forster [Tue, 17 Feb 2009 13:31:25 +0000 (14:31 +0100)]
ChangeLog, README: Updated information for the 1.0.0 release.
Sebastian Harl [Tue, 17 Feb 2009 10:51:27 +0000 (11:51 +0100)]
bindings/perl/Makefile.PL: Let the Perl module depend on liboping.la.
When building the Perl module from the liboping sources (instead of e.g. a
stand-alone Perl package), the module will now be rebuilt if the library has
been changed.
Florian Forster [Tue, 17 Feb 2009 12:16:02 +0000 (13:16 +0100)]
src/liboping.c: Beautify two debugging messages.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Florian Forster [Tue, 17 Feb 2009 12:15:39 +0000 (13:15 +0100)]
src/liboping.c: Fix a (too conservative) off-by-one error in ping_iterator_get_info()
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Florian Forster [Tue, 17 Feb 2009 12:14:58 +0000 (13:14 +0100)]
bindings/perl: Add support for the number of dropped packets.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Florian Forster [Tue, 17 Feb 2009 12:14:30 +0000 (13:14 +0100)]
bindings/perl: Update license information in the XS file.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Florian Forster [Tue, 17 Feb 2009 12:14:02 +0000 (13:14 +0100)]
bindings/perl: Fix error handling in Perl:ping() and XS:_ping_iterator_get_hostname().
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Florian Forster [Tue, 17 Feb 2009 12:12:12 +0000 (13:12 +0100)]
bindings/perl: Improve license information and fix typos in the documentation.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Florian Forster [Tue, 17 Feb 2009 10:29:43 +0000 (11:29 +0100)]
build system: Added some serious voodoo to make MakeMaker behave.
It is now, at last, possible to build the Perl module before installing
liboping and still have it linked correctly.
Florian Forster [Tue, 17 Feb 2009 08:30:54 +0000 (09:30 +0100)]
bindings/perl: Use OPING_VERSION to enable the work-around for 0.3.5.
Florian Forster [Tue, 17 Feb 2009 08:17:03 +0000 (09:17 +0100)]
src/liboping.c: Fix an incorrect assertion in `ping_timeval_add'.
Florian Forster [Tue, 17 Feb 2009 07:50:06 +0000 (08:50 +0100)]
bindings/perl: Fix a memory leak in _ping_iterator_get_hostname().
Thanks to "Iceberg" who reported this issue and provided the patch via
rt.cpan.org.
Signed-off-by: Florian Forster <octo@verplant.org>
Florian Forster [Fri, 22 Aug 2008 07:47:14 +0000 (09:47 +0200)]
bindings/Makefile.am: Don't build the Perl bindings automatically.
To build the Perl bindings, do:
$ cd bindings; make perl install
Florian Forster [Fri, 22 Aug 2008 07:00:24 +0000 (09:00 +0200)]
ping_iterator_get_info: Provide the number of timed out packets.
Florian Forster [Wed, 30 Jan 2008 07:11:12 +0000 (08:11 +0100)]
src/liboping.c: Use \#ifdef's around `EAI_SYSTEM'.
Apparently this define is mentioned in RFC3493 but not in SUS. At least Cygwin
seems not to have this define..
Florian Forster [Sun, 27 Jan 2008 15:45:07 +0000 (16:45 +0100)]
bindings/perl/Makefile.PL: Removed that `use 5.008007;' from yet another place.
Why is everything kept in 1000 places in Perl modules? *argh*
Florian Forster [Sun, 27 Jan 2008 15:20:26 +0000 (16:20 +0100)]
Merge branch 'origin'
Florian Forster [Sun, 27 Jan 2008 15:19:23 +0000 (16:19 +0100)]
Net::Oping: Bumped version to 1.01.
Also added `use 5.006;' to Net/Oping.pm, because `use warnings;' is a Perl 5.6
feature.
Sebastian Harl [Sun, 27 Jan 2008 15:13:04 +0000 (16:13 +0100)]
Integrate bindings subdirectory into the build process.
* Added bindings/Makefile.am.
* Added support for the variable PERL, which specifies the Perl interpreter
command, to the configure script.
* Added the --with-perl-bindings option to the configure script. Any argument
(except "yes" and "no") will be passed as options to "perl Makefile.PL".
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@verplant.org>
Florian Forster [Sat, 26 Jan 2008 17:50:40 +0000 (18:50 +0100)]
bindings/perl/Makefile.PL: Search for the header file and give up if it cannot be found.
Florian Forster [Sat, 26 Jan 2008 17:00:13 +0000 (18:00 +0100)]
Net::Oping: Added a note about the need to be root to the module's POD.
Florian Forster [Sat, 26 Jan 2008 16:20:48 +0000 (17:20 +0100)]
bindings/perl/MANIFEST: Sorted the entries alphabetically.
Florian Forster [Sat, 26 Jan 2008 16:20:31 +0000 (17:20 +0100)]
Net::Oping: Removed `use 5.008007;' because we (hopefully) don't need it.
Florian Forster [Sat, 26 Jan 2008 13:53:41 +0000 (14:53 +0100)]
bindings/perl/MANIFEST: Remove the ppport.h header file from this list.
Florian Forster [Sat, 26 Jan 2008 13:00:02 +0000 (14:00 +0100)]
src/liboping.c: Return the number of bytes actually required to store the username
Including the terminating NULL-byte.
Florian Forster [Sat, 26 Jan 2008 12:59:23 +0000 (13:59 +0100)]
Merge branch 'liboping-0.3'
Florian Forster [Sat, 26 Jan 2008 12:59:07 +0000 (13:59 +0100)]
Merge branch 'pull/liboping-0.3' into liboping-0.3
Florian Forster [Sat, 26 Jan 2008 12:58:30 +0000 (13:58 +0100)]
src/liboping.c: Return the number of bytes actually required to store the hostname
Including the terminating NULL-byte.
Florian Forster [Sat, 26 Jan 2008 12:57:05 +0000 (13:57 +0100)]
bindings/perl: Added an improved version of the Perl bindings created by Olivier Fredj.
Florian Forster [Sat, 26 Jan 2008 09:36:20 +0000 (10:36 +0100)]
Merge branch 'origin'
Florian Forster [Sat, 26 Jan 2008 09:35:08 +0000 (10:35 +0100)]
src/liboping.c: Added the `username' field which holds the name provided by the user.
Alex Brooks has reported that he cannot reliably remove hosts he added without
a fully qualified domain name, such as `foobar'. The reason is that the
`hostname' the user provided is replaced with the `canonical hostname', if they
differ. To fix this problem I introduced a new fields `username' which holds
the hostname as it was supplied by the user. This is the only name checked when
removing a host now.
Applications may access this name using the new `PING_INFO_USERNAME' option for
`ping_iterator_get_info'.
Doug MacEachern [Wed, 29 Aug 2007 20:09:52 +0000 (22:09 +0200)]
Provide a fallback if `ICMP6_ECHO_REQUEST' or `ICMP6_ECHO_REPLY' is not defined.
Hello,
I just started looking at liboping, looks great so far! I needed the attached
patch to compile on aix 5.2, works as expected once built. I chose to hardwire
the constant values due to conflicts when including aix's netinet/ip6_icmp.h.
I can try to untangle if desired but prefer to spend as little time on aix as
possible :)
% uname -a
AIX orange 2 5
000919934C00
% find /usr/include/ -name "*.h" | xargs grep ICMP6_ | egrep '128|129'
/usr/include/netinet/ip6_icmp.h:#define ICMP6_ECHO 128 /* echo service */
/usr/include/netinet/ip6_icmp.h:#define ICMP6_ECHOREPLY 129 /* echo reply */
Florian Forster [Tue, 27 Mar 2007 09:23:16 +0000 (11:23 +0200)]
Bumped version to 0.3.5; Updated ChangeLog and debian/changelog
Florian Forster [Tue, 27 Mar 2007 09:15:17 +0000 (11:15 +0200)]
Merge branch 'es/close'
Alex Brooks [Tue, 27 Mar 2007 09:14:19 +0000 (11:14 +0200)]
oping.h: Use `extern "C"' if `__cplusplus' is defined.
Alex Brooks [Tue, 27 Mar 2007 09:11:31 +0000 (11:11 +0200)]
oping.h: #include <sys/types.h> so that `size_t' is defined.
Esteban Sanchez [Tue, 27 Mar 2007 09:06:56 +0000 (11:06 +0200)]
Close the filedescriptor in `ping_free', not `ping_host_remove'.
Florian Forster [Sat, 16 Dec 2006 11:07:39 +0000 (12:07 +0100)]
ping_iterator_get(3): Added the `AUTHOR' section.
Florian Forster [Fri, 1 Dec 2006 08:24:04 +0000 (09:24 +0100)]
Bumped version to 0.3.4; Updated ChangeLog and debian/changelog
Wojtek [Fri, 1 Dec 2006 08:13:57 +0000 (09:13 +0100)]
Fix usage of `strcasecmp' in `ping_host_remove'.
The compare function needs to be checked wether it returns zero. Without this
fix the first host is being removed unless it's the host being looked for.
That is obviously not good nor correct.
Florian Forster [Sun, 16 Jul 2006 10:34:46 +0000 (12:34 +0200)]
Bumped version to 0.3.3; Updated ChangeLog and debian/changelog
Florian Forster [Sun, 16 Jul 2006 10:29:35 +0000 (12:29 +0200)]
Merge branch 'v022/net-unreach'
Florian Forster [Sun, 16 Jul 2006 10:25:42 +0000 (12:25 +0200)]
ChangeLog: Added note about the E{HOST,NET}UNREACH bugfix.
Florian Forster [Sun, 16 Jul 2006 10:19:42 +0000 (12:19 +0200)]
liboping.c: Catch `EHOSTUNREACH' and `ENETUNREACH'
When the kernel cannot send out a packet to a host because the host or network
is unreachable, `sendto' may return with `EHOSTUNREACH' or `ENETUNREACH'. So
far all errors returned by `sendto' were considered fatal and the pinging was
aborted. This is wrong when the host is unreachable, so catching and ignoring
these errors is reasonable..
Thanks to Wolfgang Kroener for reporting and debigging this problem with me :)
Florian Forster [Thu, 13 Jul 2006 14:06:17 +0000 (16:06 +0200)]
Bumped version to 0.3.2, updated ChangeLog(s).
Florian Forster [Wed, 12 Jul 2006 07:31:40 +0000 (09:31 +0200)]
Removed unneccesary comments.
Florian Forster [Wed, 12 Jul 2006 07:31:26 +0000 (09:31 +0200)]
Fixed the build system to version the generated shared objects and set an `soname' for them.