1
0
mirror of https://frontier.innolan.net/rainlance/amiga-fping.git synced 2025-11-19 18:31:50 +00:00

Updated documentation

This commit is contained in:
2016-03-05 11:19:34 +01:00
parent 097c701fe5
commit 979bcfd515
9 changed files with 876 additions and 341 deletions

177
INSTALL
View File

@ -1,177 +0,0 @@
Basic Installation
==================
These are generic installation instructions.
--> See the README file for fping-specific instructions. <--
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, a file
`config.cache' that saves the results of its tests to speed up
reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging `configure').
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you may remove or edit it.
The file `configure.in' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
Running `configure' takes a while. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the command line like
this:
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not supports the `VPATH'
variable, you have to compile the package for one architecture at a time
in the source code directory. After you have installed the package for
one architecture, use `make distclean' before reconfiguring for another
architecture.
Installation Names
==================
By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
option `--prefix=PATH'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
give `configure' the option `--exec-prefix=PATH', the package will use
PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Specifying the System Type
==========================
There may be some features `configure' can not figure out
automatically, but needs to determine by the type of host the package
will run on. Usually `configure' can figure that out, but if it prints
a message saying it can not guess the host type, give it the
`--host=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name with three fields:
CPU-COMPANY-SYSTEM
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the host type.
If you are building compiler tools for cross-compiling, you can also
use the `--target=TYPE' option to select the type of system they will
produce code for and the `--build=TYPE' option to select the type of
system on which you are compiling the package.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Operation Controls
==================
`configure' recognizes the following options to control how it
operates.
`--cache-file=FILE'
Use and save the results of the tests in FILE instead of
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
debugging `configure'.
`--help'
Print a summary of the options to `configure', and exit.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made.
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--version'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`configure' also accepts some other, not widely useful, options.

2
COPYING → LICENCE Normal file → Executable file
View File

@ -15,3 +15,5 @@
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Detailed license info can be found in supplied source files.

View File

@ -1 +0,0 @@
SUBDIRS = doc src

View File

@ -1,24 +0,0 @@
#!/bin/sh
[ -f Makefile ] && make clean
rm -f Makefile
rm -f Makefile.in
rm -f aclocal.m4
rm -rf autom4te.cache
rm -f config.guess
rm -f config.h
rm -f config.h.in
rm -f config.log
rm -f config.status
rm -f config.sub
rm -f configure
rm -f depcomp
rm -f install-sh
rm -f missing
rm -f mkinstalldirs
rm -f stamp-h1
rm -f doc/Makefile.in
rm -f src/Makefile.in
rm -f doc/fping.8
rm -f src/*.gcda
rm -f src/*.gcno
rm -f src/*.gcov

View File

@ -1,2 +0,0 @@
#!/bin/sh
autoreconf -i

View File

@ -1,77 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
dnl Minimum Autoconf version required.
AC_PREREQ(2.59)
AC_INIT([fping],[3.13])
dnl make ipv4 and ipv6 options
AC_ARG_ENABLE([ipv4],
[ --enable-ipv4 Build IPv4 capable fping],
[case "${enableval}" in
yes) ipv4=true ;;
no) ipv4=false ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-ipv4]) ;;
esac],[ipv4=true])
AM_CONDITIONAL([IPV4], [test x$ipv4 = xtrue])
AC_ARG_ENABLE([ipv6],
[ --enable-ipv6 Build IPv6 capable fping6],
[case "${enableval}" in
yes) ipv6=true ;;
no) ipv6=false ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-ipv6]) ;;
esac],[ipv6=false])
AM_CONDITIONAL([IPV6], [test x$ipv6 = xtrue])
if test x$ipv4 = xfalse && test x$ipv6 = xfalse; then
AC_MSG_ERROR([You must enable at least one of IPv4 and IPv6.])
fi
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AM_MAINTAINER_MODE
AC_CONFIG_HEADERS([config.h])
dnl Checks for programs.
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
dnl Checks for libraries.
AC_CHECK_FUNC(gethostbyname)
if test $ac_cv_func_gethostbyname = no; then
AC_CHECK_LIB(nsl, gethostbyname)
fi
AC_CHECK_FUNC(connect)
if test $ac_cv_func_connect = no; then
AC_CHECK_LIB(socket, connect)
fi
AH_TOP([
#ifndef CONFIG_H
#define CONFIG_H
])
AH_BOTTOM([
/* some OSes do not define this ... lets take a wild guess */
#ifndef INADDR_NONE
# define INADDR_NONE 0xffffffffU
#endif
#endif /* CONFIG_H */
])
dnl Checks for header files.
AC_CHECK_HEADERS(unistd.h sys/file.h stdlib.h sys/select.h)
AC_CONFIG_FILES([Makefile
doc/Makefile
src/Makefile])
AC_OUTPUT

189
doc/fping.help Normal file
View File

@ -0,0 +1,189 @@
FPING(8) FPING(8)
NAME
fping - send ICMP ECHO_REQUEST packets to network hosts
SYNOPSIS
fping [ options ] [ systems... ] fping6 [ options ] [ systems... ]
DESCRIPTION
fping is a program like ping which uses the Internet Control Message
Protocol (ICMP) echo request to determine if a target host is
responding. fping differs from ping in that you can specify any number
of targets on the command line, or specify a file containing the lists
of targets to ping. Instead of sending to one target until it times
out or replies, fping will send out a ping packet and move on to the
next target in a round-robin fashion. In the default mode, if a target
replies, it is noted and removed from the list of targets to check; if
a target does not respond within a certain time limit and/or retry
limit it is designated as unreachable. fping also supports sending a
specified number of pings to a target, or looping indefinitely (as in
ping ). Unlike ping, fping is meant to be used in scripts, so its
output is designed to be easy to parse.
The binary named fping6 is the same as fping, except that it uses IPv6
addresses instead of IPv4.
OPTIONS
-a Show systems that are alive.
-A Display targets by address rather than DNS name. Combined with -d,
the output will be both the ip and (if available) the hostname.
-b n Number of bytes of ping data to send. The minimum size (normally
12) allows room for the data that fping needs to do its work
(sequence number, timestamp). The reported received data size
includes the IP header (normally 20 bytes) and ICMP header (8
bytes), so the minimum total size is 40 bytes. Default is 56, as
in ping. Maximum is the theoretical maximum IP datagram size
(64K), though most systems limit this to a smaller, system-
dependent number.
-B n Backoff factor. In the default mode, fping sends several requests
to a target before giving up, waiting longer for a reply on each
successive request. This parameter is the value by which the wait
time (-t) is multiplied on each successive request; it must be
entered as a floating-point number (x.y). The default is 1.5.
-c n Number of request packets to send to each target. In this mode, a
line is displayed for each received response (this can suppressed
with -q or -Q). Also, statistics about responses for each target
are displayed when all requests have been sent (or when
interrupted).
-C n Similar to -c, but the per-target statistics are displayed in a
format designed for automated response-time statistics gathering.
For example:
% fping -C 5 -q somehost
somehost : 91.7 37.0 29.2 - 36.8
shows the response time in milliseconds for each of the five
requests, with the "-" indicating that no response was received to
the fourth request.
-d Use DNS to lookup address of return ping packet. This allows you
to give fping a list of IP addresses as input and print hostnames
in the output.
-D Add Unix timestamps in front of output lines generated with in
looping or counting modes (-l, -c, or -C).
-e Show elapsed (round-trip) time of packets.
-f Read list of targets from a file. This option can only be used by
the root user. Regular users should pipe in the file via stdin:
% fping < targets_file
-g addr/mask
Generate a target list from a supplied IP netmask, or a starting
and ending IP. Specify the netmask or start/end in the targets
portion of the command line. If a network with netmask is given,
the network and broadcast addresses will be excluded. ex. To ping
the network 192.168.1.0/24, the specified command line could look
like either:
fping -g 192.168.1.0/24
or
fping -g 192.168.1.1 192.168.1.254
-h Print usage message.
-i n The minimum amount of time (in milliseconds) between sending a
ping packet to any target (default is 25).
-l Loop sending packets to each target indefinitely. Can be
interrupted with Ctrl-C; statistics about responses for each
target are then displayed.
-m Send pings to each of a target host's multiple interfaces.
-n Same as -d.
-p <n>
In looping or counting modes (-l, -c, or -C), this parameter sets
the time in milliseconds that fping waits between successive
packets to an individual target. Default is 1000.
-q Quiet. Don't show per-probe results, but only the final summary.
Also don't show ICMP error messages.
-Q n Like -q, but show summary results every n seconds.
-r n Retry limit (default 3). This is the number of times an attempt at
pinging a target will be made, not including the first try.
-R Instead of using all-zeros as the packet data, generate random
bytes. Use to defeat, e.g., link data compression.
-s Print cumulative statistics upon exit.
-S addr
Set source address.
-I if
Set the interface (requires SO_BINDTODEVICE support)
-t n Initial target timeout in milliseconds (default 500). In the
default mode, this is the amount of time that fping waits for a
response to its first request. Successive timeouts are multiplied
by the backoff factor specified with -B. Note that this option
has no effect looping or counting modes (-l, -c, or -C).
-T n Ignored (for compatibility with fping 2.4).
-u Show targets that are unreachable.
-O n Set the typ of service flag (TOS). n can be either decimal or
hexadecimal (0xh) format.
-v Print fping version information.
-H n Set the IP TTL field (time to live hops).
EXAMPLES
Generate ~1000 pings per second to a host until canceled, printing
statistics on the fly at one second intervals, and printing statistics
at the end:
# fping -s -l -i 1 -p 1 -T 1 -Q 1 127.0.0.1
Note that ping intervals less than 10ms can only be used as root.
AUTHORS
· Roland J. Schemers III, Stanford University, concept and versions
1.x
· RL "Bob" Morgan, Stanford University, versions 2.x
· David Papp, versions 2.3x and up
· David Schweikert, versions 3.0 and up
fping website: <http://www.fping.org>
DIAGNOSTICS
Exit status is 0 if all the hosts are reachable, 1 if some hosts were
unreachable, 2 if any IP addresses were not found, 3 for invalid
command line arguments, and 4 for a system call failure.
RESTRICTIONS
If certain options are used (i.e, a low value for -i and -t, and a high
value for -r) it is possible to flood the network. This program must be
installed as setuid root in order to open up a raw socket, or must be
run by root. In order to stop mere mortals from hosing the network,
normal users can't specify the following:
· -i n, where n < 10 msec
· -r n, where n > 20
· -t n, where n < 250 msec
SEE ALSO
ping(8)
fping 2016-02-19 FPING(8)

View File

@ -1,55 +1,57 @@
FPING(8) FPING(8)
NAME
NAME
fping - send ICMP ECHO_REQUEST packets to network hosts
SYNOPSIS
fping [ options ] [ systems... ] fping6 [ options ] [ systems... ]
SYNOPSIS
fping [ options ] [ systems... ] fping6 [ options ] [ systems... ]
DESCRIPTION
fping is a program like ping which uses the Internet Control Message
DESCRIPTION
fping is a program like ping which uses the Internet Control Message
Protocol (ICMP) echo request to determine if a target host is
responding. fping differs from ping in that you can specify any number
responding. fping differs from ping in that you can specify any number
of targets on the command line, or specify a file containing the lists
of targets to ping. Instead of sending to one target until it times
out or replies, fping will send out a ping packet and move on to the
out or replies, fping will send out a ping packet and move on to the
next target in a round-robin fashion. In the default mode, if a target
replies, it is noted and removed from the list of targets to check; if
a target does not respond within a certain time limit and/or retry
limit it is designated as unreachable. fping also supports sending a
limit it is designated as unreachable. fping also supports sending a
specified number of pings to a target, or looping indefinitely (as in
ping ). Unlike ping, fping is meant to be used in scripts, so its
ping ). Unlike ping, fping is meant to be used in scripts, so its
output is designed to be easy to parse.
The binary named fping6 is the same as fping, except that it uses IPv6
The binary named fping6 is the same as fping, except that it uses IPv6
addresses instead of IPv4.
OPTIONS
-a Show systems that are alive.
OPTIONS
-a Show systems that are alive.
-A Display targets by address rather than DNS name.
-A Display targets by address rather than DNS name. Combined with -d,
the output will be both the ip and (if available) the hostname.
-b n Number of bytes of ping data to send. The minimum size (normally
12) allows room for the data that fping needs to do its work
-b n Number of bytes of ping data to send. The minimum size (normally
12) allows room for the data that fping needs to do its work
(sequence number, timestamp). The reported received data size
includes the IP header (normally 20 bytes) and ICMP header (8
bytes), so the minimum total size is 40 bytes. Default is 56, as
in ping. Maximum is the theoretical maximum IP datagram size
in ping. Maximum is the theoretical maximum IP datagram size
(64K), though most systems limit this to a smaller, system-
dependent number.
-B n Backoff factor. In the default mode, fping sends several requests
-B n Backoff factor. In the default mode, fping sends several requests
to a target before giving up, waiting longer for a reply on each
successive request. This parameter is the value by which the wait
time (-t) is multiplied on each successive request; it must be
time (-t) is multiplied on each successive request; it must be
entered as a floating-point number (x.y). The default is 1.5.
-c n Number of request packets to send to each target. In this mode, a
-c n Number of request packets to send to each target. In this mode, a
line is displayed for each received response (this can suppressed
with -q or -Q). Also, statistics about responses for each target
with -q or -Q). Also, statistics about responses for each target
are displayed when all requests have been sent (or when
interrupted).
-C n Similar to -c, but the per-target statistics are displayed in a
-C n Similar to -c, but the per-target statistics are displayed in a
format designed for automated response-time statistics gathering.
For example:
@ -60,21 +62,21 @@
requests, with the "-" indicating that no response was received to
the fourth request.
-d Use DNS to lookup address of return ping packet. This allows you
-d Use DNS to lookup address of return ping packet. This allows you
to give fping a list of IP addresses as input and print hostnames
in the output.
-D Add Unix timestamps in front of output lines generated with in
looping or counting modes (-l, -c, or -C).
-D Add Unix timestamps in front of output lines generated with in
looping or counting modes (-l, -c, or -C).
-e Show elapsed (round-trip) time of packets.
-e Show elapsed (round-trip) time of packets.
-f Read list of targets from a file. This option can only be used by
-f Read list of targets from a file. This option can only be used by
the root user. Regular users should pipe in the file via stdin:
% fping < targets_file
-g addr/mask
-g addr/mask
Generate a target list from a supplied IP netmask, or a starting
and ending IP. Specify the netmask or start/end in the targets
portion of the command line. If a network with netmask is given,
@ -88,58 +90,70 @@
fping -g 192.168.1.1 192.168.1.254
-h Print usage message.
-h Print usage message.
-i n The minimum amount of time (in milliseconds) between sending a
-i n The minimum amount of time (in milliseconds) between sending a
ping packet to any target (default is 25).
-l Loop sending packets to each target indefinitely. Can be
-l Loop sending packets to each target indefinitely. Can be
interrupted with Ctrl-C; statistics about responses for each
target are then displayed.
-m Send pings to each of a target host's multiple interfaces.
-m Send pings to each of a target host's multiple interfaces.
-n Same as -d.
-n Same as -d.
-p <n>
In looping or counting modes (-l, -c, or -C), this parameter sets
the time in milliseconds that fping waits between successive
-p <n>
In looping or counting modes (-l, -c, or -C), this parameter sets
the time in milliseconds that fping waits between successive
packets to an individual target. Default is 1000.
-q Quiet. Don't show per-probe results, but only the final summary.
-q Quiet. Don't show per-probe results, but only the final summary.
Also don't show ICMP error messages.
-Q n Like -q, but show summary results every n seconds.
-Q n Like -q, but show summary results every n seconds.
-r n Retry limit (default 3). This is the number of times an attempt at
-r n Retry limit (default 3). This is the number of times an attempt at
pinging a target will be made, not including the first try.
-s Print cumulative statistics upon exit.
-R Instead of using all-zeros as the packet data, generate random
bytes. Use to defeat, e.g., link data compression.
-S addr
-s Print cumulative statistics upon exit.
-S addr
Set source address.
-I if
-I if
Set the interface (requires SO_BINDTODEVICE support)
-t n Initial target timeout in milliseconds (default 500). In the
default mode, this is the amount of time that fping waits for a
-t n Initial target timeout in milliseconds (default 500). In the
default mode, this is the amount of time that fping waits for a
response to its first request. Successive timeouts are multiplied
by the backoff factor specified with -B. Note that this option
has no effect looping or counting modes (-l, -c, or -C).
by the backoff factor specified with -B. Note that this option
has no effect looping or counting modes (-l, -c, or -C).
-T n Ignored (for compatibility with fping 2.4).
-T n Ignored (for compatibility with fping 2.4).
-u Show targets that are unreachable.
-u Show targets that are unreachable.
-O n Set the typ of service flag (TOS). n can be either decimal or
-O n Set the typ of service flag (TOS). n can be either decimal or
hexadecimal (0xh) format.
-v Print fping version information.
-v Print fping version information.
-H n Set the IP TTL field (time to live hops).
-H n Set the IP TTL field (time to live hops).
AUTHORS
EXAMPLES
Generate ~1000 pings per second to a host until canceled, printing
statistics on the fly at one second intervals, and printing statistics
at the end:
# fping -s -l -i 1 -p 1 -T 1 -Q 1 127.0.0.1
Note that ping intervals less than 10ms can only be used as root.
AUTHORS
· Roland J. Schemers III, Stanford University, concept and versions
1.x
@ -149,25 +163,27 @@
· David Schweikert, versions 3.0 and up
fping website: <http://www.fping.org>
fping website: <http://www.fping.org>
DIAGNOSTICS
DIAGNOSTICS
Exit status is 0 if all the hosts are reachable, 1 if some hosts were
unreachable, 2 if any IP addresses were not found, 3 for invalid
command line arguments, and 4 for a system call failure.
RESTRICTIONS
If certain options are used (i.e, a low value for -i and -t, and a high
value for -r) it is possible to flood the network. This program must be
RESTRICTIONS
If certain options are used (i.e, a low value for -i and -t, and a high
value for -r) it is possible to flood the network. This program must be
installed as setuid root in order to open up a raw socket, or must be
run by root. In order to stop mere mortals from hosing the network,
normal users can't specify the following:
· -i n, where n < 10 msec
· -i n, where n < 10 msec
· -r n, where n > 20
· -r n, where n > 20
· -t n, where n < 250 msec
· -t n, where n < 250 msec
SEE ALSO
ping(8)
2014-05-04
fping 2016-02-19 FPING(8)

609
history Executable file
View File

@ -0,0 +1,609 @@
2016-02-22 Carsten Larsen <carsten.larsen@mail.com>
* AROS Version 3.13
* (internal) Compatibility changes in usage of gettimeofday
* (internal) Compatibility changes datatypes and library usage
2016-02-22 Carsten Larsen <carsten.larsen@mail.com>
* AmigaOS Version 3.13
* (bugfix) Socket was not closed and memory not released on exit
* (bugfix) Calculation of digits were incorrect due to a faulty gettimeofday function
* (bugfix) Differences in Amiga timeval datatype sometimes caused fping to hang
* (internal) Code compliance with AmigaOS (Amiga2Date etc.)
* (internal) Removed non-supported TTL and TOS socket options
* (improvement) Minor improvement in visual layouts
2015-10-21 David Schweikert <david@schweikert.ch>
* Version 3.13
* (bugfix) Fix ICMP errors sometimes causing crashes with fping >= 3.11
(fixes #85, reported by Jamie Heilman and Bill Blough)
2015-10-14 David Schweikert <david@schweikert.ch>
* Version 3.12
* (bugfix) Fix fping6 -R (fixes #84, reported by Stuart Henderson)
2015-10-12 David Schweikert <david@schweikert.ch>
* Version 3.11
* (feature) New option -R to use random bytes instead of NULLs (#72, Anthony DeRobertis)
* (feature) Small documentation and performance improvements (Ryan Underwood)
* (bugfix) Fix double entries with fping -u and unreachable hosts
* (internal) Use sockaddr_storage and simplify code, so that we can one day support both IPv4 and IPv6 with the same binary
2015-08-14 Carsten Larsen <carsten.larsen@mail.com>
* Initial AmigaOS version
2014-05-03 David Schweikert <david@schweikert.ch>
* Version 3.10
* Fix confusing error message with -g and IPv6 addresses (#58, reported by Axel Beckert)
* Allow option '-f' also for non-root (since setuid privileges are dropped)
* Do not retry twice DNS lookup on DNS lookup problem
* Remove support for NIS groups
* Better document -B backoff-factor and when it can be used (#33, Oleksiy Zagorskyi)
* More tests added
2014-03-08 David Schweikert <david@schweikert.ch>
* Version 3.9
* Fix random output on socket error (reported by Aleksandrs Saveljevs, #56)
* Support ppc64le architecture by including alpha libtool version
(reported by Amit Kumar Gupta and Aravinda B Thunug)
* Fix compilation problem on FreeBSD (#57)
* Initial test suite and continous intergration (with travis-ci.org / coveralls.io)
* Don't output usage information on error
2013-11-08 David Schweikert <david@schweikert.ch>
* Version 3.8
* Fix segmentation fault introduced in version 3.7 with loop mode (reported
by Vlad Glagolev, #55)
2013-11-04 David Schweikert <david@schweikert.ch>
* Version 3.7
* Allow running as non-root on Mac OS X by using non-privileged ICMP (#7)
* Remove unnecessary IPv6 socket options
* Fix again compatibility issue with FreeBSD (Shawn Chu)
* Fix fping hanging forever on permanent sendto failure (Shawn Chu)
* Fix duplicate echo reply packets causing early stop in count mode
(reported by Ramon Schwammberger, #53)
2013-10-10 David Schweikert <david@schweikert.ch>
* Version 3.6
* Fix loop issue after 65536 pings (reported by Peter Folk and GBert, #12)
* Minimum ping data size is now 0
* Removed setsockopt IPV6_CHECKSUM, which shouldn't be set and breaks
compiling on Solaris (reported by Juergen Arndt)
* Fix wrong min RTT value with -Q option (reported by Alexander Ivanov, #51)
2013-05-22 David Schweikert <david@schweikert.ch>
* Version 3.5
* Fix sprint_tm buffer size crash (reported by Japheth Cleaver)
* Addded -D flag to print timestamps (Toke Høiland-Jørgensen)
* Fix fping6 build on OS X 10.8 (unknown contributor)
* Fix compatibility issue with FreeBSD (Alexandre Raynaud, Jason Harris, #39)
* Fping.spec: fix setuid permissions and provides fping6 (Marcus Vinicius Ferreira)
* Re-create configure script with autoconf 2.69 for aarch64 support (Chuck Anderson, #45)
2012-09-04 David Schweikert <david@schweikert.ch>
* Version 3.4
* Revert "Output statistics to stdout instead of stderr", because it breaks
tools assuming the output goes to stderr
2012-08-19 David Schweikert <david@schweikert.ch>
* Version 3.3
* Do not output icmp errors with -q (#1)
* Add --enable-ipv4 and --enable-ipv6 options to configure (Niclas Zeising)
* Fix removing of unreachable hosts when doing loop (Thomas Liske, #13 #23)
* Fix -A for fping6 (reported by Matt LaPlante, #14)
* Fix "options inet6" breaking IPv4 name resolution (reported by Matt LaPlante, #17)
* Output statistics to stdout instead of stderr (suggested by Simon Leinen, #9)
* Set default data size to 56 bytes on all architectures (#18)
* Added contrib/fping.spec (Stephen Schaefer, #24)
* Convert man-page source to POD for easier maintenance
* Fix error message on DNS error for IPv6 hosts (#27)
* Fix -n flag in fping6 (#28)
* Man-page fix: TOS option typo (Thomas Liske, #23)
* Man-page fix: inconsistency in regards to numeric arguments (Robert Henney)
* Man-page fix: better description of option -q (#15)
2012-05-29 David Schweikert <david@schweikert.ch>
* Version 3.2
* Improve documentation for -g option (G.W. Haywood)
* Performance optimization for big select timeouts (#10, Andrey Bondarenko)
* Fix restart of select call after interrupt signal (#8, Boian Bonev)
* Fix infinite loop caused by linked list corruption (#11, Boian Bonev)
2012-04-26 David Schweikert <david@schweikert.ch>
* Version 3.1
* -g option (generate): exclude network and broadcast address for cidr
ranges (idea by Eric Brander)
* do not explicitely check if running as root, to make it possible to
install fping with linux capabilities instead of making it setuid
(setcap cap_net_raw+ep fping)
* ANSI C (C89) compiler now a requirement
* Portability fixes
* Reorganized source directory
* Bugfix: fix timeout issue on Solaris (Sandor Geller)
* Man-page fixes (Axel Beckert)
* Added -H option to specify number of hops (Paul Duda)
* Output usage information to stdout when called with -h (Paul Duda)
2011-12-28 David Schweikert <david@schweikert.ch>
* Version 3.0
* rewritten main loop for improved performance
* -T parameter (select timeout) now obsolete
* Maintenance taken over from unresponsive previous maintainer
(anybody please step up, if you disagree)
* New homepage: www.fping.org
2009-12-21 Tobi Oetiker <tobi@oetiker.ch>
* Version v2.4b2-to3-ipv6
* added -On option to set the TOS octet
* Removed unused variables from code
* updated to current autoconf standards
* Merged Debian changes (see below)
----------------------------------------------------------------------
fping (2.4b2-to-ipv6-16.1) unstable; urgency=low
* NMU during Moenchengladbach BSP
* Fixes FTBFS on kfreebsd (Closes: #555398)
* Fixes typo "Paramter" in binary
-- Axel Beckert <abe@deuxchevaux.org> Sat, 23 Jan 2010 16:22:02 +0100
fping (2.4b2-to-ipv6-16) unstable; urgency=low
* Fix the following bugs
- Network byte order sensitivity was missing completely.
Added hopefully all missing calls.
- The sequence numbering scheme used led to packet drops.
Changed it to a more senseful numbering scheme.
- Some minor C programming mistakes ('=' instead of '==').
Patch by Stephan Fuhrmann; closes: #502569
* Add support for command line select timeout setting
Patch by Marton Balint; closes: #502575
* Remove symlinks in /usr/sbin; closes: #377732
* Standards-Version is 3.8.0
-- Anibal Monsalve Salazar <anibal@debian.org> Sat, 18 Oct 2008 12:04:52 +1100
fping (2.4b2-to-ipv6-15) unstable; urgency=low
* Added interface binding (-I) for fping
Patch by Peter Naulls <peter@mushroomnetworks.com>
Closes: #439014
* Fixed a couple of typos in fping.8. Closes: #423180
* Added homepage control header
* Bumped Standards-Version to 3.7.3
* Fixed the following lintian issue:
- debian-rules-sets-DH_COMPAT
-- Anibal Monsalve Salazar <anibal@debian.org> Mon, 03 Mar 2008 17:46:17 +1100
fping (2.4b2-to-ipv6-13) unstable; urgency=low
* Fixed stdout flush problem, closes: #340146.
Patch by Bart Martens <bart.martens@advalvas.be>.
-- Anibal Monsalve Salazar <anibal@debian.org> Fri, 30 Dec 2005 08:30:09 +1100
fping (2.4b2-to-ipv6-12) unstable; urgency=low
* Fixed "problem with option -r (retry limit)", closes: #318402.
Patch by Qingning Huo <qingningh@lanware.co.uk>.
-- Anibal Monsalve Salazar <anibal@debian.org> Sat, 08 Oct 2005 21:26:35 +1000
fping (2.4b2-to-ipv6-11) unstable; urgency=low
* Fixed "would be useful to specify 'source address' like ping for multi
homed machines", closes: #198486.
Patch by Marc Haber <mh+debian-bugs@zugschlus.de>.
-- Anibal Monsalve Salazar <anibal@debian.org> Thu, 02 Jun 2005 08:14:54 +1000
fping (2.4b2-to-ipv6-10) unstable; urgency=low
* Fixed "unnecessary delay with the -c option after the last packet"
(Closes: #293856). Patch by Niko Tyni <ntyni@iki.fi>
-- Anibal Monsalve Salazar <anibal@debian.org> Sun, 06 Feb 2005 23:25:57 +1100
fping (2.4b2-to-ipv6-9) unstable; urgency=low
* Fixed "fping6 always does reverse lookup" (Closes: #273647).
Patch by Jeroen Massar and forwarded by Bernhard Schmidt <berni@birkenwald.de>
-- Anibal Monsalve Salazar <A.Monsalve.Salazar@IEEE.org> Mon, 10 Jan 2005 00:01:32 +1100
fping (2.4b2-to-ipv6-7) unstable; urgency=low
* Build fping in build/ipv[46] instead of build and build-ipv6.
* Made DNS errors non-fatal for IPv6 (closes: #198056).
-- Herbert Xu <herbert@debian.org> Fri, 20 Jun 2003 21:36:30 +1000
fping (2.4b2-to-ipv6-6) unstable; urgency=low
* Do not use incorrect linux.h file (closes: #85468).
-- Herbert Xu <herbert@debian.org> Sat, 17 May 2003 14:13:11 +1000
fping (2.4b2-to-ipv6-5) unstable; urgency=low
* Fixed yet another divide by zero bug (closes: #148445).
-- Herbert Xu <herbert@debian.org> Tue, 4 Jun 2002 12:18:03 +1000
fping (2.4b2-to-ipv6-4) unstable; urgency=low
* Made fping6 setuid (closes: #136386).
* Moved fping back into bin.
* Partially applied IPv6 patch to fix IPv6 checksums (closes: #136479).
-- Herbert Xu <herbert@debian.org> Sun, 7 Apr 2002 20:36:56 +1000
fping (2.4b2-to-ipv6-3) unstable; urgency=low
* Added compatibility symlink for fping (closes: #135203).
-- Herbert Xu <herbert@debian.org> Sat, 23 Feb 2002 08:34:11 +1100
fping (2.4b2-to-ipv6-2) unstable; urgency=low
* Fixed another divide by zero error (closes: #132370).
-- Herbert Xu <herbert@debian.org> Thu, 7 Feb 2002 20:10:48 +1100
fping (2.4b2-to-ipv6-1) unstable; urgency=low
* New upstream release.
* Install fping into sbin as done by upstream.
-- Herbert Xu <herbert@debian.org> Fri, 1 Feb 2002 22:11:59 +1100
fping (2.2b2-3) unstable; urgency=low
* Removed INSTALL file from package (closes: #84050).
* Fixed alignment bug.
-- Herbert Xu <herbert@debian.org> Sat, 10 Feb 2001 19:25:18 +1100
fping (2.2b2-2) unstable; urgency=low
* Made changes for dpkg-statoverride (closes: #83838).
-- Herbert Xu <herbert@debian.org> Sun, 28 Jan 2001 21:53:05 +1100
fping (2.2b2-1) unstable; urgency=low
* New upstream release.
* Fixed typo that prevented -d from working (closes: #83255).
* Drop root privileges after opening the socket (closes: #81589).
* Fixed the options [tip], they were out by a factor of 10
(Richard Kettlewell, closes: #83742).
-- Herbert Xu <herbert@debian.org> Sun, 28 Jan 2001 00:09:41 +1100
fping (2.2b1-2) unstable; urgency=low
* Fixed typo in control file, spotted by William Ono (closes: #49909).
-- Herbert Xu <herbert@debian.org> Mon, 15 May 2000 12:27:03 +1000
fping (2.2b1-1) unstable; urgency=low
* Initial release.
* Fixed divide by zero error (closes: #29902).
-- Herbert Xu <herbert@debian.org> Sat, 30 Oct 1999 16:36:19 +1000
---------------------------------------------------------------------------------
Wed Jan 16 2002
Jeroen Massar
- Revision v2.4b2-to-IPv6
- Added IPv6 support.
- Added -I option for selecting source IPv4/IPv6 address.
- Makefile.in now generates a Makefile which will build both
fping (IPv4) and fping6 (IPv6). Thus it makes an fping (IPv4 only)
and an fping6 (IPv6 only).
- num_unreachable was counted twice when a sendto() generated errors.
- See http://unfix.org/projects/ipv6/
Tue Mar 14 2001
Jason Ewasiuk <jasone@remote.net>
- Revision v2.4b1
- added -g option for generating IPs from a start to an end value
- two available options, generate IPs from start IP to end IP
or from a passed netmask, such as 192.168.1.0/24
Thu Feb 15 2001
Jason Ewasiuk <jasone@remote.net>
- Revision v2.3b1
- formatting changes to code layout (fping.c)
NOTE: Best viewed with a tab stop of 4
- merged in changes from Debian c/o Herbert Xu
<herbert@gondor.apana.org.au>
- Compilation fix on alphas with glibc
- Alignment issues (note from JE: in wait_for_reply())
- A typo with the time specified on the command line
(note from JE: bug was using 10 instead of 100)
- Drop privileges after obtaining socket
(note from JE: might be moot, since prog exits if
user is not root)
- touched all files in package to this date
- couple new #ifdefs added for future WIN32 support
(Haven't got to adding this yet, will take a lot of rewriting.)
Fri Dec 8 10:33:13 2000 Roland Schemers <schemers@stanford.edu>
* stop using sys_errlist and start using strerror
fixed bug in output of -C
Wed Jan 8 11:18:37 1997 Roland Schemers <schemers@stanford.edu>
* Created ChangeLog file. What follows was from the CHANGES file.
* Revision 2.0 1994/10/31 21:26:23 morgan
Substantial rewrite, including new features:
support some traditional ping features:
loop mode
specify size of data packets
specify how many pings to send
show per-response data
interpret ICMPs other than ICMP Echo response
also
rewrote main loop completely
make timings in tenths of milliseconds
do exponential backoff on retries
port to more systems
add some debugging stuff
do better checking on whether received ICMP is for us
* Revision 1.24 1993/12/10 23:11:39 schemers
commented out seteuid(getuid()) since it isn't needed
* Revision 1.23 1993/12/10 18:33:41 schemers
Took out the -f option for non-root users. This can be enabled by
defining ENABLE_F_OPTION before compiling. There is a call to
access before opening the file, but there is a race condition.
Reading from stdin is much safer.
* Revision 1.22 1993/11/16 19:49:24 schemers
Took out setuid(getuid()) and used access() system call to
check for access to the file specified with "-f".
* Revision 1.21 1993/07/20 18:08:19 schemers
commented out the test to make sure the ping packet came from the
same IP address as the one we sent to. This could cause problems on
multi-homed hosts.
* Revision 1.20 1993/02/23 00:16:38 schemers
fixed syntax error (should have compiled before checking in...)
* Revision 1.19 1993/02/23 00:15:15 schemers
turned off printing of "is alive" when -a is specified.
* Revision 1.18 1992/07/28 15:16:44 schemers
added a fflush(stdout) call before the summary is sent to stderr, so
everything shows up in the right order.
* Revision 1.17 1992/07/23 03:29:42 schemers
* Revision 1.16 1992/07/22 19:24:37 schemers
Fixed declaration of timeval_diff. Didn't notice the problem because
I use 'cc' in stead of gcc under Ultrix. Time to switch? :-)
Modified file reaing so it would skip blank lines or lines starting
with a '#'. Now you can do something like:
fping -ad < /etc/hosts
* Revision 1.15 1992/07/21 17:07:18 schemers
Put in sanity checks so only root can specify "dangerous" options.
Changed usage to show switchs in alphabetical order.
* Revision 1.14 1992/07/21 16:40:52 schemers
* Revision 1.13 1992/07/17 21:02:17 schemers
Changed the default timeout to 2500 msec, and retry to 3. This was
due to suggestions from people with slow (WAN) networks. The default
1 sec timeout was too fast.
Added '-e' option for showing elapsed (round-trip) times on pakets, and
modified the -s option to include min, max, and average round-trip times,
and over all elapsed time.
Modified action taken when a error is returned from sendto. The action
taken now considers the host unreachable and prints the hostname
followed by the errno message. The program will not exit and will continue
to try other hosts.
* Revision 1.12 1992/07/17 16:38:54 schemers
* Revision 1.11 1992/07/17 16:28:38 schemers
move socket create call so I could do a setuid(getuid()) before the
fopen call is made. Once the socket is created root privs aren't needed
to send stuff out on it.
moved num_timeout counter. It really was for debug purposes and didn't
make sense to the general public :-) Now it is the number of timeouts
(pings that didn't get received with the time limit).
* Revision 1.10 1992/07/16 16:24:38 schemers
* Revision 1.9 1992/07/16 16:00:04 schemers
* Revision 1.8 1992/07/16 05:44:41 schemers
Added _NO_PROTO stuff for older compilers, and _POSIX_SOURCE
for unistd.h, and _POSIX_SOURCE for stdlib.h. Also added
check for __cplusplus.
Now compiles ok under Ultrix 3.1, and Sun4 using cc. Also compiled
ok using g++ 2.2.2.
Changed '-a' and '-u' flags to be mutually exclusive (makes sense, since
specifiying both '-a' and '-u' is the same as not specifiying anything.
Since '-a' and '-u' are mutually exclusive, these options now only print
the hostname, and not the 'is alive' or 'is unreachable' messages.
This makes it much easier to do stuff like:
#!/usr/local/bin/perl
$hosts_to_backup=`cat /etc/hosts.backup|fping -a`;
Since you don't have to strip off the 'is alive' messages.
Changed usage to and stats to print to stderr instead of stdout.
-----------------------------------------------------------------------------
RCS header info from original fping.c package (no longer required)
/*
***************************************************
*
* Standard RCS Header information (see co(1))
*
* $Author: schemers $
*
* $Date: 1997/01/08 20:29:33 $
*
* $Revision: 2.2 $
*
* $Locker: $
*
* $Source: /afs/ir/group/networking/src/fping/fping-2.2/src/RCS/fping.c,v $
*
* $State: Exp $
*
* $Log: fping.c,v $
*
* Revision 2.2 1997/01/08 20:29:33 schemers
* changes for autoconf/automake
*
* Revision 2.1 1997/01/08 19:07:18 schemers
* checked in RL "Bob"'s changes before configure'ing
*
* Revision 2.0 1994/10/31 21:26:23 schemers
* many changes by RL "Bob" Morgan
* add timing data collection, loop mode, per-packet output, etc
*
* Revision 1.24 1993/12/10 23:11:39 schemers
* commented out seteuid(getuid()) since it isn't needed
*
* Revision 1.23 1993/12/10 18:33:41 schemers
* Took out the -f option for non-root users. This can be enabled by
* defining ENABLE_F_OPTION before compiling. There is a call to
* access before opening the file, but there is a race condition.
* Reading from stdin is much safer.
*
* Revision 1.22 1993/11/16 19:49:24 schemers
* Took out setuid(getuid()) and used access() system call to
* check for access to the file specified with "-f".
*
* Revision 1.21 1993/07/20 18:08:19 schemers
* commented out the test to make sure the ping packet came from the
* same IP address as the one we sent to. This could cause problems on
* multi-homed hosts.
*
* Revision 1.20 1993/02/23 00:16:38 schemers
* fixed syntax error (should have compiled before checking in...)
*
* Revision 1.19 1993/02/23 00:15:15 schemers
* turned off printing of "is alive" when -a is specified.
*
* Revision 1.18 1992/07/28 15:16:44 schemers
* added a fflush(stdout) call before the summary is sent to stderr, so
* everything shows up in the right order.
*
* Revision 1.17 1992/07/23 03:29:42 schemers
* fixed declaration of timeval_diff.
*
* Revision 1.16 1992/07/22 19:24:37 schemers
* Modified file reading so it would skip blanks lines or lines starting
* with a '#'. Now you can do something like:
*
* fping -ad < /etc/hosts
*
* Revision 1.15 1992/07/21 17:07:18 schemers
* Put in sanity checks so only root can specify "dangerous" options.
* Changed usage to show switchs in alphabetical order.
*
* Revision 1.14 1992/07/21 16:40:52 schemers
* Now when sendto returns an error, the host is considered unreachable and
* and the error message (from errno) is displayed.
*
* Revision 1.13 1992/07/17 21:02:17 schemers
* changed default timeout to 2500 msec (for WANs), and default try
* to 3. This gives 10 second overall timeout.
*
* Added -e option for showing elapsed (round-trip) time on packets
*
* Modified -s option to inlude to round-trip stats
*
* Added #ifndef DEFAULT_* stuff its easier to change the defaults
*
* Reorganized main loop.
*
* cleaned up timeval stuff. removed set_timeval and timeval_expired
* since they aren't needed anymore. Just use timeval_diff.
*
* Revision 1.12 1992/07/17 16:38:54 schemers
* move socket create call so I could do a setuid(getuid()) before the
* fopen call is made. Once the socket is created root privs aren't needed
* to send stuff out on it.
*
* Revision 1.11 1992/07/17 16:28:38 schemers
* moved num_timeout counter. It really was for debug purposes and didn't
* make sense to the general public :-) Now it is the number of timeouts
* (pings that didn't get received with the time limit).
*
* Revision 1.10 1992/07/16 16:24:38 schemers
* changed usage() to use fprintf(stderr,"...");
*
* Revision 1.9 1992/07/16 16:00:04 schemers
* Added _NO_PROTO stuff for older compilers, and _POSIX_SOURCE
* for unistd.h, and _POSIX_SOURCE for stdlib.h. Also added
* check for __cplusplus.
*
* Revision 1.8 1992/07/16 05:44:41 schemers
* changed -a and -u to only show hostname in results. This is
* for easier parsing. Also added -v flag
*
* Revision 1.7 1992/07/14 18:45:23 schemers
* initialized last_time in add_host function
*
* Revision 1.6 1992/07/14 18:32:40 schemers
* changed select to use FD_ macros
*
* Revision 1.5 1992/07/14 17:21:22 schemers
* standardized exit status codes
*
* Revision 1.4 1992/06/26 15:25:35 schemers
* changed name from rrping to fping
*
* Revision 1.3 1992/06/24 15:39:32 schemers
* added -d option for unreachable systems
*
* Revision 1.2 1992/06/23 03:01:23 schemers
* misc fixes from R.L. "Bob" Morgan
*
* Revision 1.1 1992/06/19 18:23:52 schemers
* Initial revision
*
*--------------------------------------------------
* Copyright (c) 1992, 1994, 1997 Board of Trustees
* Leland Stanford Jr. University
***************************************************
*/