diff --git a/INSTALL b/INSTALL deleted file mode 100644 index e23597f..0000000 --- a/INSTALL +++ /dev/null @@ -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. diff --git a/COPYING b/LICENCE old mode 100644 new mode 100755 similarity index 94% rename from COPYING rename to LICENCE index cceb651..c9436b2 --- a/COPYING +++ b/LICENCE @@ -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. diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 1af203b..0000000 --- a/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = doc src diff --git a/autoclean.sh b/autoclean.sh deleted file mode 100755 index 1977d24..0000000 --- a/autoclean.sh +++ /dev/null @@ -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 diff --git a/autogen.sh b/autogen.sh deleted file mode 100755 index 68f4a17..0000000 --- a/autogen.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -autoreconf -i diff --git a/configure.ac b/configure.ac deleted file mode 100644 index 0030967..0000000 --- a/configure.ac +++ /dev/null @@ -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 diff --git a/doc/fping.help b/doc/fping.help new file mode 100644 index 0000000..81c0f80 --- /dev/null +++ b/doc/fping.help @@ -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  + 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:  + +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) diff --git a/doc/fping.txt b/doc/fping.txt index a2c6568..259f445 100644 --- a/doc/fping.txt +++ b/doc/fping.txt @@ -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  - In looping or counting modes (-l, -c, or -C), this parameter sets - the time in milliseconds that fping waits between successive + -p + 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:  + fping website: -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) diff --git a/history b/history new file mode 100755 index 0000000..9b5de3c --- /dev/null +++ b/history @@ -0,0 +1,609 @@ +2016-02-22 Carsten Larsen + * AROS Version 3.13 + * (internal) Compatibility changes in usage of gettimeofday + * (internal) Compatibility changes datatypes and library usage + +2016-02-22 Carsten Larsen + * 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 + * 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 + * Version 3.12 + * (bugfix) Fix fping6 -R (fixes #84, reported by Stuart Henderson) + +2015-10-12 David Schweikert + * 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 + * Initial AmigaOS version + +2014-05-03 David Schweikert + * 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 + * 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 + * Version 3.8 + * Fix segmentation fault introduced in version 3.7 with loop mode (reported + by Vlad Glagolev, #55) + +2013-11-04 David Schweikert + * 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 + * 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 + * 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 + * 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 + * 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 + * 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 + * 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 + * 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 + * 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 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 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 + 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 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 . + + -- Anibal Monsalve Salazar 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 . + + -- Anibal Monsalve Salazar 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 . + + -- Anibal Monsalve Salazar 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 + + -- Anibal Monsalve Salazar 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 + + -- Anibal Monsalve Salazar 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 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 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 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 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 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 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 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 Sat, 10 Feb 2001 19:25:18 +1100 + +fping (2.2b2-2) unstable; urgency=low + + * Made changes for dpkg-statoverride (closes: #83838). + + -- Herbert Xu 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 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 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 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 +- 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 +- 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 + + - 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 + + * stop using sys_errlist and start using strerror + fixed bug in output of -C + +Wed Jan 8 11:18:37 1997 Roland Schemers + + * 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 + *************************************************** + */