src/liboping.c: Remove dead code which broke strict aliasing rules.
Thanks to Alan Pevec for the pointer.
Thanks to Alan Pevec for the pointer.
src/liboping.c: Use thread-safe error handling.
I. e. move to `strerror_r'.
I. e. move to `strerror_r'.
src/{lib,}oping.c: Fix a few problems -Wextra has found.
src/{lib,}oping.c: Don't cast `size_t' to `unsigned int' when printing.
Use the "%zu" format string instead.
Use the "%zu" format string instead.
src/mans/*.pod: Updated copyright information.
Bumped version to 1.0.0.
ChangeLog, README: Updated information for the 1.0.0 release.
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.
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.
src/liboping.c: Beautify two debugging messages.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
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>
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
bindings/perl: Add support for the number of dropped packets.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
bindings/perl: Update license information in the XS file.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
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>
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
bindings/perl: Improve license information and fix typos in the documentation.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
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.
It is now, at last, possible to build the Perl module before installing
liboping and still have it linked correctly.
bindings/perl: Use OPING_VERSION to enable the work-around for 0.3.5.
src/liboping.c: Fix an incorrect assertion in `ping_timeval_add'.
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>
Thanks to "Iceberg" who reported this issue and provided the patch via
rt.cpan.org.
Signed-off-by: Florian Forster <octo@verplant.org>
bindings/Makefile.am: Don't build the Perl bindings automatically.
To build the Perl bindings, do:
$ cd bindings; make perl install
To build the Perl bindings, do:
$ cd bindings; make perl install
ping_iterator_get_info: Provide the number of timed out packets.
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..
Apparently this define is mentioned in RFC3493 but not in SUS. At least Cygwin
seems not to have this define..
bindings/perl/Makefile.PL: Removed that `use 5.008007;' from yet another place.
Why is everything kept in 1000 places in Perl modules? *argh*
Why is everything kept in 1000 places in Perl modules? *argh*
Merge branch 'origin'
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.
Also added `use 5.006;' to Net/Oping.pm, because `use warnings;' is a Perl 5.6
feature.
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>
* 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>
bindings/perl/Makefile.PL: Search for the header file and give up if it cannot be found.
Net::Oping: Added a note about the need to be root to the module's POD.
bindings/perl/MANIFEST: Sorted the entries alphabetically.
Net::Oping: Removed `use 5.008007;' because we (hopefully) don't need it.
bindings/perl/MANIFEST: Remove the ppport.h header file from this list.
src/liboping.c: Return the number of bytes actually required to store the username
Including the terminating NULL-byte.
Including the terminating NULL-byte.
Merge branch 'liboping-0.3'
Merge branch 'pull/liboping-0.3' into liboping-0.3
src/liboping.c: Return the number of bytes actually required to store the hostname
Including the terminating NULL-byte.
Including the terminating NULL-byte.
bindings/perl: Added an improved version of the Perl bindings created by Olivier Fredj.
Merge branch 'origin'
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'.
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'.
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 */
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 */
Bumped version to 0.3.5; Updated ChangeLog and debian/changelog
Merge branch 'es/close'
oping.h: Use `extern "C"' if `__cplusplus' is defined.
oping.h: #include <sys/types.h> so that `size_t' is defined.
Close the filedescriptor in `ping_free', not `ping_host_remove'.
ping_iterator_get(3): Added the `AUTHOR' section.
Bumped version to 0.3.4; Updated ChangeLog and debian/changelog
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.
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.
Bumped version to 0.3.3; Updated ChangeLog and debian/changelog
Merge branch 'v022/net-unreach'
ChangeLog: Added note about the E{HOST,NET}UNREACH bugfix.
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 :)
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 :)
Bumped version to 0.3.2, updated ChangeLog(s).
Removed unneccesary comments.
Fixed the build system to version the generated shared objects and set an `soname' for them.
oping: Drop root privileges as soon as possible.
Bumped version to 0.3.1
configure.ac: There's no configure-script in src/.
Remove more libltdl.
Remove libltdl.
I have no clue what I was thinking when including this.
I have no clue what I was thinking when including this.
Makefile.am: Don't include debian/ in the distribution tarball.
Bumped version to 0.3.0; Updated ChangeLog.
AUTHORS: Document the only author so far ;)
Merge branch 'origin'
Updated the license information in the .c and .h files: Only allow GPLv2.
oping: Print the error message if ping_send failes.
Update the manpages: Added information about setting the source address.
Updated the oping library to understand the `-I' option (bind to a specified address).
Actually bind to the configured address.
D'oh!
D'oh!
Reset the address-family to `AF_UNSPEC' before setting the source address.
In >90% of all cases you will pass an IP-address to that option anyway. After
the address has been looked up, set `obj->addrfamily' accordingly.
In >90% of all cases you will pass an IP-address to that option anyway. After
the address has been looked up, set `obj->addrfamily' accordingly.
Added the ability to set the source address in the library.
Use `ping_setopt' and `PING_OPT_SOURCE' to set it. This _might_ fail under *BSD
and/or Mac OS X, I have to test that..
Use `ping_setopt' and `PING_OPT_SOURCE' to set it. This _might_ fail under *BSD
and/or Mac OS X, I have to test that..
Merge branch 'feature'
Bumped version to 0.2.2; Updated ChangeLog
oping: Call `return' rather than `exit' in `main'.
Use `AI_CANONNAME' if it's defined.
This will follow PTR records. `www.verplant.org' is changed to `verplant.org',
for example. It's not what I intended (I wanted a reverse lookup of
IP-addresses), but still better than what we had originally. I don't know if
I'll leave it like this. Might be though..
This will follow PTR records. `www.verplant.org' is changed to `verplant.org',
for example. It's not what I intended (I wanted a reverse lookup of
IP-addresses), but still better than what we had originally. I don't know if
I'll leave it like this. Might be though..
oping: Improved the error message is a destination cannot be resolved.
Also no further error is printed if the command exits due to no resolvable
hosts: People will notice that condition..
Also no further error is printed if the command exits due to no resolvable
hosts: People will notice that condition..
oping: Exit if no hosts could be added.
If no hosts could be added (e.g. because resolving the hostnames failed) the
oping application didn't exit but seemed to hang. Actually it was calling
`poll' (or select?) without any file descriptors, and not outputting anything
at all.
This patch makes oping exit if no hosts could be added to the oping library.
If no hosts could be added (e.g. because resolving the hostnames failed) the
oping application didn't exit but seemed to hang. Actually it was calling
`poll' (or select?) without any file descriptors, and not outputting anything
at all.
This patch makes oping exit if no hosts could be added to the oping library.
Bumped version to 0.2.1
Updated ChangeLog: Added entry about the removal of `bind(2)'.
Don't call bind when opening a socket.
The call to bind, thoug working fine under GNU/Linux, seems not to work under
other operating systems. It didn't work under FreeBSD and Mac OS X with the
`bind' call but without.
I think `bind' may only be neccessary if we want to bind to a specific
interface. It might be a good idea to add the possibility later, so I only
commented the code for now.
The call to bind, thoug working fine under GNU/Linux, seems not to work under
other operating systems. It didn't work under FreeBSD and Mac OS X with the
`bind' call but without.
I think `bind' may only be neccessary if we want to bind to a specific
interface. It might be a good idea to add the possibility later, so I only
commented the code for now.
Cast `size_t' to `unsigned int'. Needed by Mac OS X.
This cast has been missed by the prefious fix because it was in the debugging
code which was disabled then..
This cast has been missed by the prefious fix because it was in the debugging
code which was disabled then..
Merge branch 'debug-flag' into liboping-0.2
Added `--enable-debug' to the configure script.
It's now possible to enable debugging by using the above configure option.
It's now possible to enable debugging by using the above configure option.
Added a ChangeLog entry about changes in the build system.
Fix the configure-script for FreeBSD.
The `netinet/*.h' includes need `sys/types.h' to be included before they are.
This prevented building under FreeBSD as reported by `_oli_'.
The `netinet/*.h' includes need `sys/types.h' to be included before they are.
This prevented building under FreeBSD as reported by `_oli_'.
Cast (size_t) to (unsigned int).
It's not always automatically an unsigned int on other platforms, e.g. Mac OS X.
It's not always automatically an unsigned int on other platforms, e.g. Mac OS X.
Bumped the version to 0.2.0. Completed the ChangeLog entry.
Reverse the ordering of the hosts.
Display a line of the following form when starting `oping':
PING www.ipv6.org (2001:6b0:1:ea:202:a5ff:fecd:13a6) 56 bytes of data.
PING www.ipv6.org (2001:6b0:1:ea:202:a5ff:fecd:13a6) 56 bytes of data.
Improved oping: Save the sequence in an `unsigned int' rather than a `uint16_t' and print the received bytes.
Updated changelog: Added the post version-0.1 changes..
Correct the calculation of the standard deviation.
Implemented better handling of the DATA stuff.. Needs to be implemented still.
But for now data can be assigned to ping_objs, it's inherited by ping_hosts and
can be retrieved by `ping_get_info'.
But for now data can be assigned to ping_objs, it's inherited by ping_hosts and
can be retrieved by `ping_get_info'.
Implemented the possibility to set the buffer being sent. This allows larger/smaller packets to be sent.
Make iterator_get_info return the sequence as an unsigned int, rather than an uint16_t.
Implemented `-h' option.
Allow non-root users to get syntax information.
Use correct computation of standard deviation.
Allow non-root users to get syntax information.
Use correct computation of standard deviation.
octo@huhu:~/liboping $ svn merge -r7:9 branches/liboping-0.1 trunk
Bumped version to 0.1.1
Added note about 0.1.1 to ChangeLog
octo@huhu:~/liboping $ svn merge -r2:3 trunk branches/liboping-0.1
octo@huhu:~/liboping $ svn cp tags/liboping-0.1.0 branches/liboping-0.1
Only display statistics in oping if packets have been received.
Also, don't devide by zero.
Also, don't devide by zero.