Florian Forster [Tue, 18 Nov 2014 17:23:56 +0000 (18:23 +0100)]
src/oping.c: Add median and 'n'th percentile, remove average and stddev.
Average and standard deviation are not very useful for network latency.
Median and (95th) percentiles are routinely used to measure network
performance, so provide them instead.
Florian Forster [Tue, 18 Nov 2014 16:43:11 +0000 (17:43 +0100)]
src/oping.c: Exit early if no host could be resolved.
Otherwise "noping" would drop the user into an empty ncurses window,
which is very confusing, annoying and unexpected.
Florian Forster [Sun, 12 Oct 2014 15:32:47 +0000 (17:32 +0200)]
src/oping.c: Define thresholds for coloring green and yellow in a central place.
Florian Forster [Sun, 12 Oct 2014 15:32:06 +0000 (17:32 +0200)]
src/oping.c: Make sure the reported percentile value doesn't exceed the maximum.
Florian Forster [Sun, 12 Oct 2014 15:31:41 +0000 (17:31 +0200)]
noping: Color response times based on their percentile.
Update the histogram's "ratio" array after ever response and use that to
color the response time in the noping application.
Florian Forster [Fri, 10 Oct 2014 10:53:40 +0000 (12:53 +0200)]
oping manual page: Document the "-g histogram" option.
Florian Forster [Thu, 9 Oct 2014 20:50:41 +0000 (22:50 +0200)]
src/oping.c: Add a "-g histrogram" option.
Florian Forster [Thu, 9 Oct 2014 14:39:00 +0000 (16:39 +0200)]
noping: Add the "-g" option.
Florian Forster [Thu, 9 Oct 2014 10:36:09 +0000 (12:36 +0200)]
Initial implementation of a box plot.
Still needs a command line switch and documentation.
Florian Forster [Sun, 28 Sep 2014 09:17:26 +0000 (02:17 -0700)]
oping, noping: Implement percentile reporting.
Florian Forster [Thu, 25 Sep 2014 19:29:11 +0000 (12:29 -0700)]
configure.ac: Change homepage and bug report address.
Florian Forster [Thu, 25 Sep 2014 19:23:10 +0000 (12:23 -0700)]
liboping.pc: Let configure create the pkg-config file.
Florian Forster [Thu, 25 Sep 2014 17:39:31 +0000 (10:39 -0700)]
Bump version to 1.7.0; Update ChangeLog.
Florian Forster [Thu, 25 Sep 2014 00:22:44 +0000 (17:22 -0700)]
Merge pull request #4 from barak/upstream
minor build system tweaks, to generate oping.pc file for pkg-config oping
Florian Forster [Thu, 25 Sep 2014 00:10:54 +0000 (17:10 -0700)]
Merge branch 'bp/exit'
Conflicts:
src/mans/oping.pod
src/oping.c
Florian Forster [Wed, 24 Sep 2014 23:55:36 +0000 (16:55 -0700)]
Merge branch 'ab/prettyping'
Florian Forster [Wed, 24 Sep 2014 23:44:58 +0000 (16:44 -0700)]
Make the prettyping output work with and without colors.
Barak A. Pearlmutter [Thu, 22 May 2014 22:20:32 +0000 (23:20 +0100)]
simplify autogen.sh
Barak A. Pearlmutter [Thu, 22 May 2014 22:12:53 +0000 (23:12 +0100)]
generate and install oping.pc file, for pkg-config oping
Barak A. Pearlmutter [Thu, 22 May 2014 22:12:12 +0000 (23:12 +0100)]
add bug email and project url to configure.ac AC_INIT
Florian Forster [Tue, 14 Jan 2014 12:36:33 +0000 (13:36 +0100)]
ping_receive_all(): Return immediately when select(2) is interrupted.
Previously the function would continue and only return when all hosts
were received or a timeout occurred. This meant that hitting ^C would
only stop "oping" after half a second or so. This this, oping also exits
immediately.
Florian Forster [Fri, 10 Jan 2014 11:28:02 +0000 (12:28 +0100)]
Add support for both, ncurses and ncursesw.
Florian Forster [Fri, 6 Dec 2013 10:02:35 +0000 (11:02 +0100)]
Add documentation for the "-u" and "-U" options.
Florian Forster [Fri, 6 Dec 2013 09:52:22 +0000 (10:52 +0100)]
src/oping.h: Don't use the ncurses internal _nc_unicode_locale() function.
The "-u" and "-U" options are now handled in a single variable so that the
last option "wins".
Antoine Beaupré [Fri, 6 Dec 2013 05:16:28 +0000 (00:16 -0500)]
add commandline flag for forcing or disabling unicode
note that "forcing" may not work: ncurses still expects your locale to
be correct, so maybe the force flag should also explicitely set a utf8
locale?
Antoine Beaupré [Fri, 6 Dec 2013 05:07:09 +0000 (00:07 -0500)]
move unicode detection to a separate function
this will ease transition to a commandline option override
Antoine Beaupré [Fri, 6 Dec 2013 04:35:00 +0000 (23:35 -0500)]
autodetect unicode, and fallback to ACS scancodes on failure
this is fairly ugly - we use a hidden ncurses function to detect
unicode (but at least we don't reimplement it), then we mess around
with the character arrays to display the rights symbols
i am not sure i like this, but i prefer to braindump than to stall, so
let's move forward.
Florian Forster [Thu, 5 Dec 2013 17:15:52 +0000 (18:15 +0100)]
Refactor the graph printing into its own function.
This makes it much easier and cleaner to add a second, non-Unicode
implementation and possibly even a non-color version.
Antoine Beaupré [Tue, 3 Dec 2013 05:33:39 +0000 (00:33 -0500)]
switch to ncursesw in the build chain
Florian Forster [Tue, 3 Dec 2013 14:33:18 +0000 (15:33 +0100)]
Merge remote-tracking branch 'anarcat/autogen'
Antoine Beaupré [Tue, 3 Dec 2013 05:34:32 +0000 (00:34 -0500)]
ignore generated file
Antoine Beaupré [Tue, 3 Dec 2013 04:15:13 +0000 (23:15 -0500)]
better wrapping: add a cursor and respect inner borders
Antoine Beaupré [Tue, 3 Dec 2013 03:57:00 +0000 (22:57 -0500)]
rework scaling algorithm so it covers the whole range
i did this after some stress testing, now it covers the whole range on input
Antoine Beaupré [Tue, 3 Dec 2013 03:32:46 +0000 (22:32 -0500)]
cleanup safety checks
make sure that if we go beyond the max ratio, we just mark it as one
Antoine Beaupré [Tue, 3 Dec 2013 03:32:15 +0000 (22:32 -0500)]
wrap around the window once the histogram grows too big
Antoine Beaupré [Tue, 3 Dec 2013 03:29:53 +0000 (22:29 -0500)]
remove a little quirk i introduced by mistake
this was breaking the border
Antoine Beaupré [Tue, 3 Dec 2013 03:29:24 +0000 (22:29 -0500)]
make histogram colors with a nicer background
Antoine Beaupré [Tue, 3 Dec 2013 03:10:41 +0000 (22:10 -0500)]
restore usual ping display, now that histograms are in a different window
Antoine Beaupré [Tue, 3 Dec 2013 03:06:26 +0000 (22:06 -0500)]
put histograms into the independent window, to eventually restore ping times display
Antoine Beaupré [Tue, 3 Dec 2013 01:51:05 +0000 (20:51 -0500)]
add autogen script for clueless people like me
Antoine Beaupré [Tue, 3 Dec 2013 01:45:58 +0000 (20:45 -0500)]
implement some prettyping-inspired display instead of textual
this is a first stab at porting "prettyping.sh" into noping. the idea
is to show a histogram of ping times instead of numerical values. with
some work, we could actually show both, but this focuses on
implementing the hard part (the histogram) properly.
it is very rudimentary for now:
* the math may be wrong for the size of the bar, I was mostly in a
rush to make unicode work and have something pretty quickly.
* all hosts are on the same line: each should have its own line
* the histogram should be displayed in a separate window
* it should use background colors as well
* it should fallback when the terminal is not unicode-capable
* the scaling logic is fully automatic, which necessarily gives weird
results at first
this requires switching to the ncursesw library and other unicode
ncurses hackery described in this post:
http://newsgroups.derkeiler.com/Archive/Rec/rec.games.roguelike.development/2010-09/msg00050.html
pretty ping is a awk/bash script, MIT-licensed, available here:
https://bitbucket.org/denilsonsa/small_scripts/src/tip/prettyping.sh
Scott Severtson [Mon, 21 May 2012 14:44:02 +0000 (10:44 -0400)]
Solaris 10 compatibility patch
Solaris 10's version of netinet/ip.h doesn't include a definition for
IPTOS_MINCOST, which results in the following build error:
---
libtool: link: ( cd ".libs" && rm -f "liboping.la" && ln -s
"../liboping.la" "liboping.la" )
gcc -DHAVE_CONFIG_H -I. -D_XPG4_2 -D__EXTENSIONS__ -Wall -Werror -g
-O2 -c oping.c
oping.c: In function `usage_qos_exit':
oping.c:311: error: `IPTOS_MINCOST' undeclared (first use in this function)
oping.c:311: error: (Each undeclared identifier is reported only once
oping.c:311: error: for each function it appears in.)
oping.c: In function `set_opt_send_qos':
oping.c:389: error: `IPTOS_MINCOST' undeclared (first use in this function)
gmake[3]: *** [oping.o] Error 1
---
I've attached a patch to define this value, consistent with how the
Asterisk project resolved this issue:
https://issues.asterisk.org/view.php?id=12050
The patch was developed against liboping 1.6.2; it doesn't appear
there have been any changes in git since this release.
Thanks,
--Scott Severtson
Signed-off-by: Florian Forster <octo@verplant.org>
Florian Forster [Tue, 31 Jan 2012 16:20:15 +0000 (17:20 +0100)]
Bump ABI version; update ChangeLog.
Clayton O'Neill [Sun, 30 Oct 2011 23:36:46 +0000 (19:36 -0400)]
Mac OX S 10.7 compile fixes.
I've attached a patch that's required to be able to compile liboping on
MacOS 10.7 (Lion). The issue is that the IPv6 API's are changing from
RFC 2292 to 3542, and Apple's headers require you to state which API you
want to use by defining a constant. I've changed it to use either based
on the presence of constants, but to prefer 3542 on MacOS.
One problem I see with this is that if you have both multicast and
unicast TTL's set, then this won't report both of them, but I'm not sure
if that's even valid and it would require more significant rework.
Also, I noticed you have fixed the IP_RECVTOS issue in head. That patch
is also required to be able to compile on Solaris and MacOS.
Signed-off-by: Florian Forster <octo@verplant.org>
Florian Forster [Wed, 7 Sep 2011 01:08:32 +0000 (21:08 -0400)]
oping: Make the exit status the number of hosts failed.
As far as I know, EXIT_FAILURE is only portable when used as-is, i.e. without
adding anything to it. Especially with "EXIT_FAILURE == -1" we might run into
trouble. I think it's more convenient to just use the number of failed hosts
rather than 1+<num> (on Linux).
Barak A. Pearlmutter [Tue, 6 Sep 2011 07:03:59 +0000 (08:03 +0100)]
fiddle with failure threshold messages and comments
Florian Forster [Mon, 5 Sep 2011 02:51:14 +0000 (22:51 -0400)]
oping: Implement the "-Z" option.
This makes it possible to configure the threshold for exiting with a non-zero
exit status due to missing replies.
Barak A. Pearlmutter [Thu, 1 Sep 2011 12:22:05 +0000 (13:22 +0100)]
non-zero process exit status when too many packets are unreturned
The number of unreturned packets in excess of 50% is summed over all
hosts. If this is nonzero, this count plus 1 is the process exit
status.
Barak A. Pearlmutter [Thu, 1 Sep 2011 11:48:57 +0000 (12:48 +0100)]
guard use of IP_RECVTOS which is unavailable on kfreebsd
Florian Forster [Sat, 27 Aug 2011 15:12:19 +0000 (17:12 +0200)]
configure.ac: autoconf 2.65 works just fine, too.
Florian Forster [Fri, 2 Sep 2011 02:55:32 +0000 (22:55 -0400)]
README: Add note about capabilities.
Florian Forster [Sun, 13 Mar 2011 19:26:43 +0000 (20:26 +0100)]
Manual pages: Update the copyright information.
Florian Forster [Sun, 13 Mar 2011 19:18:47 +0000 (20:18 +0100)]
Bump version to 1.6.2; Update ChangeLog.
Florian Forster [Sat, 27 Aug 2011 15:12:19 +0000 (17:12 +0200)]
configure.ac: autoconf 2.67 works just fine.
Florian Forster [Sat, 27 Aug 2011 15:00:37 +0000 (08:00 -0700)]
Merge pull request #1 from barak/master
upstream update + tweaks
Barak A. Pearlmutter [Sun, 21 Aug 2011 13:32:21 +0000 (15:32 +0200)]
git ignore more build debris
Barak A. Pearlmutter [Sun, 21 Aug 2011 13:03:11 +0000 (15:03 +0200)]
Update configure.ac and Makefile.am per autotools
Tweak configure.ac and Makefile.am per autoreconf instructions.
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
libtoolize: `AC_PROG_RANLIB' is rendered obsolete by `LT_INIT'
Accept autoupdate modifications.
Manually integrate portions of autoscan configure.scan.
Florian Forster [Thu, 10 Mar 2011 16:10:16 +0000 (17:10 +0100)]
src/Makefile.am: Make setcap and chmod fault-tolerant.
This is required because this weird Debian fakeroot utility gives the
impression as if the install was run by root, when in fact it isn't.
What good this should do is beyond me.
Florian Forster [Mon, 7 Mar 2011 08:12:06 +0000 (09:12 +0100)]
src/liboping.c: Fix a compiler warning
… regarding a non-static format string. Thanks to Brian Edwards for
reporting this problem.
Florian Forster [Sun, 6 Mar 2011 08:46:54 +0000 (09:46 +0100)]
Bump version to 1.6.1; Update ChangeLog.
Florian Forster [Sun, 6 Mar 2011 08:41:02 +0000 (09:41 +0100)]
Update and unify copyright headers.
Florian Forster [Sun, 6 Mar 2011 08:34:22 +0000 (09:34 +0100)]
Build system: Automatically set capabilities flag / set-UID bit when installing as root.
Gaetan Bisson [Mon, 28 Feb 2011 13:41:24 +0000 (14:41 +0100)]
noping: Fix compatibility with ncurses 5.8.
Hello,
My name is Gaetan and I maintain liboping in Arch Linux; our distro is
in the process of switching to ncurses-5.8, and I wanted to report that
I had to patch liboping to make noping work with the newer ncurses.
Specifically, if I update ncurses and run the old noping binary, then
nothing is displayed in the ncurses window (although the summary output
displayed on stdout at the end is correct). Same if I recompile noping
against the new ncurses library.
The reason seems to be that calling newwin() with ncols=0 does not
produce a full width window anymore. Anyway, the simple patch attached
fixed this issue for me.
Cheers.
Signed-off-by: Florian Forster <octo@verplant.org>
Florian Forster [Wed, 16 Feb 2011 08:45:35 +0000 (09:45 +0100)]
src/oping.c: Fix a compiler warning about uninitialized variables.
Some verions of GGC don't notice that usage_qos_exit() won't return and
complain about the variables "prec" and "class" being used uninitalized.
This commit adds the "noreturn" attribute to that function and
initializes the variables. Thanks to James Bromberger for reporting this
problem.
Florian Forster [Wed, 26 Jan 2011 08:48:28 +0000 (09:48 +0100)]
Bump version to 1.6.0; Update ChangeLog.
Florian Forster [Wed, 26 Jan 2011 08:45:11 +0000 (09:45 +0100)]
README: Remove whitespace.
Florian Forster [Sat, 15 Jan 2011 19:36:25 +0000 (20:36 +0100)]
src/liboping.c: Change coding style a bit.
Bruno Prémont [Sat, 15 Jan 2011 18:44:49 +0000 (19:44 +0100)]
liboping: use SO_TIMESTAMP when available
Current implementation of liboping relies on getting enough CPU shares
and getting those in a timely manner in order to determine correct ping
response times.
Avoid this limitation when kernel is able to provide packet reception
times using SO_TIMESTAMP. (as is done by iputils's ping utility)
Signed-off-by: Florian Forster <octo@verplant.org>
Florian Forster [Sat, 27 Nov 2010 12:24:59 +0000 (13:24 +0100)]
README: Document Linux capabilities and UNIX set-UID root solutions.
Florian Forster [Wed, 17 Nov 2010 10:04:47 +0000 (11:04 +0100)]
oping(8): Document the new SetUID behavior in connection with the "-f" option.
Florian Forster [Wed, 17 Nov 2010 09:09:47 +0000 (10:09 +0100)]
Bump version to 1.5.1; Update ChangeLog.
Florian Forster [Wed, 17 Nov 2010 09:02:56 +0000 (10:02 +0100)]
src/oping.c: Mark unused argument to avoid compiler warnings.
Florian Forster [Wed, 17 Nov 2010 09:02:37 +0000 (10:02 +0100)]
src/oping.c: Remove __attribute__ flags when using non-GNU compiler.
Florian Forster [Wed, 17 Nov 2010 08:01:19 +0000 (09:01 +0100)]
src/liboping.c: Always set the QoS member. Default to 0.
This should fix the following warning / error:
liboping.c:599: warning: comparison is always true due to limited
range of data type
Thanks to James Bromberger for reporting this!
Florian Forster [Fri, 29 Oct 2010 08:09:58 +0000 (10:09 +0200)]
oping: Add alias for the "Voice Admit" DSCP.
Florian Forster [Wed, 27 Oct 2010 13:40:32 +0000 (15:40 +0200)]
Bump version to 1.5.0; Update ChangeLog.
Florian Forster [Wed, 27 Oct 2010 13:40:06 +0000 (15:40 +0200)]
ping_iterator_get_info(3): Document the "PING_INFO_RECV_QOS" flag.
Florian Forster [Wed, 27 Oct 2010 13:18:15 +0000 (15:18 +0200)]
src/oping.h: Change the default payload message.
Florian Forster [Wed, 27 Oct 2010 12:32:13 +0000 (14:32 +0200)]
Merge branch 'vm/qos'
Florian Forster [Wed, 27 Oct 2010 12:31:54 +0000 (14:31 +0200)]
oping(8): Document the displayed "qos=" field.
Florian Forster [Wed, 27 Oct 2010 10:11:51 +0000 (12:11 +0200)]
src/oping.c: Only print QoS information if it's not 0/0.
Florian Forster [Wed, 27 Oct 2010 09:27:42 +0000 (11:27 +0200)]
AUTHORS: Add Vladimir Melnikov.
Florian Forster [Wed, 27 Oct 2010 09:05:35 +0000 (11:05 +0200)]
src/oping.c: Add function for formatted printing of the QoS byte.
Florian Forster [Wed, 27 Oct 2010 08:30:40 +0000 (10:30 +0200)]
oping(8): Document the "be" and "cs<n>" DSCP abbreviations.
Florian Forster [Wed, 27 Oct 2010 07:59:09 +0000 (09:59 +0200)]
Rename "ToS" to "QoS" everywhere, to account for DSCP being used in IPv6 …
… and recommended for IPv4.
Florian Forster [Wed, 27 Oct 2010 07:53:18 +0000 (09:53 +0200)]
src/oping.c: Remove useless "strlen".
Florian Forster [Wed, 27 Oct 2010 06:58:08 +0000 (08:58 +0200)]
src/oping.c: Add the "be" and "cs[0-7]" DSCPs.
Florian Forster [Tue, 26 Oct 2010 16:22:37 +0000 (18:22 +0200)]
oping(8): Document the "-Q" option.
Florian Forster [Tue, 26 Oct 2010 15:42:38 +0000 (17:42 +0200)]
src/oping.c: Implement named arguments for DiffServ flags.
Florian Forster [Tue, 26 Oct 2010 14:20:51 +0000 (16:20 +0200)]
oping: Improve parsing of the "-z" argument.
Florian Forster [Tue, 26 Oct 2010 13:49:09 +0000 (15:49 +0200)]
Fix printing the ToS value.
Apparently "%#04x" prints 0 as "0000" instead of "0x00". *sigh*
Florian Forster [Tue, 26 Oct 2010 13:48:24 +0000 (15:48 +0200)]
ping_set_tos: Improve error handling.
Florian Forster [Tue, 26 Oct 2010 13:47:49 +0000 (15:47 +0200)]
ping_receive_one: Fix a typo.
Florian Forster [Tue, 26 Oct 2010 13:17:10 +0000 (15:17 +0200)]
src/liboping.c: Fix building with debugging enabled.
Florian Forster [Tue, 26 Oct 2010 13:11:24 +0000 (15:11 +0200)]
Rename "PING_INFO_TOS" → "PING_INFO_RECV_TOS".
Florian Forster [Tue, 26 Oct 2010 13:10:04 +0000 (15:10 +0200)]
ping_setopt(3): Document the new "PING_OPT_TOS" option.
Florian Forster [Tue, 26 Oct 2010 13:09:45 +0000 (15:09 +0200)]
src/liboping.c: Set the "IP_RECVTOS" and "IPV6_RECVTCLASS" socket options.
Florian Forster [Tue, 26 Oct 2010 13:09:10 +0000 (15:09 +0200)]
src/liboping.c: Use an uint8_t for storing the ToS.
Vladimir Melnikov [Tue, 26 Oct 2010 12:20:03 +0000 (14:20 +0200)]
Implement support for QoS / ToS fields.
Hello Florian,
I've made some functionality extension to debug QoS in the network -
ability to set tos (present in most standard "pings") and to verify
received tos field (didn't see any ping command with this feature).
May be it will need to someone else.
Best regards,
Vladimir
Florian Forster [Tue, 13 Jul 2010 14:07:53 +0000 (16:07 +0200)]
src/Makefile.am: Use "LDADD" for applications, "LIBADD" for the library.
Use "LDFLAGS" only for "-version-info".