Compare commits

65 Commits
Author SHA1 Message Date
David Schweikert 780865c8ee release 3.2 2012-05-29 10:25:21 +02:00
David Schweikert 063ee44417 Add missing changelog entry 2012-05-22 10:13:20 +02:00
David Schweikert 70b8d7e21e Release 3.2-rc1 2012-05-22 10:03:27 +02:00
David Schweikert 967266168d remove generated files 2012-05-22 10:00:02 +02:00
David Schweikert 2cbac9f893 reformat ChangeLog file, add .gitigore 2012-05-22 09:42:56 +02:00
David Schweikert c3e8dbc649 #11: fix linked list corruption 2012-05-22 09:16:19 +02:00
David Schweikert ecaca317d7 trivial: fix indenting 2012-05-21 15:03:33 +02:00
David Schweikert 74066a00ea Performance optimization for big select timeouts (#10, Andrey Bondarenko), Fix restart of select call after interrupt signal (#8, Boian Bonev) 2012-05-21 14:56:01 +02:00
David Schweikert 293a632056 improve documentation for -g option (G.W. Haywood) 2012-04-27 13:22:05 +02:00
David Schweikert 2f94a50ae6 remove 'UNRELEASED' 2012-04-26 14:12:43 +02:00
David Schweikert d4c853f4b1 Release 3.1 2012-04-25 23:43:43 +02:00
David Schweikert 2176f2a19f Release 3.1 2012-04-25 23:42:41 +02:00
David Schweikert 754feb217c Output usage information to stdout when called with -h (Paul Duda) 2012-04-25 23:33:44 +02:00
David Schweikert 940cbed179 Added -H option to specify number of hops (Paul Duda) 2012-04-25 23:24:37 +02:00
David Schweikert 8cb74ebcce update ChangeLog 2012-04-25 23:12:04 +02:00
David Schweikert 973a48096b Merge branch 'master' of github.com:schweikert/fping 2012-04-25 23:09:03 +02:00
David Schweikert 19b041904b Merge pull request #5 from xtaran/master
Typo and man-page fixups
2012-04-25 14:07:51 -07:00
Axel Beckert d433646025 Remove unknown .NXR macros 2012-04-25 22:27:38 +02:00
Axel Beckert 6f919ed54b Replace unknown .ni by .fi 2012-04-25 22:27:13 +02:00
Axel Beckert bc28412671 Fix line DOS (^M) endings in man-page 2012-04-25 22:17:53 +02:00
Axel Beckert adf7be95fd Fix multiple blank lines in man-page 2012-04-25 22:17:06 +02:00
Axel Beckert 6161a0552d Fix trailing whitespace in man-page 2012-04-25 22:15:42 +02:00
Axel Beckert d4d4106faa man page: ctl -> Ctrl 2012-04-25 22:11:49 +02:00
Axel Beckert c4ba6af7b3 Fix lintian warnings hyphen-used-as-minus-sign in man-page 2012-04-25 22:11:09 +02:00
Axel Beckert bb21654691 Fix typo "Paramter" 2012-04-25 22:06:02 +02:00
David Schweikert 2134d569b4 prepare 3.1-rc1 2012-02-23 22:47:02 +01:00
David Schweikert 8047122e85 bugfix: fix timeout issue on Solaris (Sandor Geller) 2012-02-23 22:42:00 +01:00
David Schweikert c3c0eca384 Merge branch 'master' of github.com:schweikert/fping 2012-02-20 10:42:55 +01:00
David Schweikert 457c9818d0 Sync debian changelog 2012-02-20 10:42:06 +01:00
David Schweikert 9b82b5e716 reorganized source directory 2012-02-19 23:35:21 +01:00
David Schweikert 01db781375 reorganized source directory 2012-02-19 23:16:53 +01:00
David Schweikert 5018cb8234 reorganized source directory 2012-02-19 22:59:39 +01:00
David Schweikert ac6bbc8b19 Remove unused linux.h file 2012-02-16 23:34:17 +01:00
David Schweikert 007d8c4c5c small compatibility fix 2012-02-16 23:28:41 +01:00
David Schweikert 227adfd3c7 Improve README and INSTALL 2012-02-16 23:18:40 +01:00
David Schweikert 7f35a34eb5 Improve README and INSTALL 2012-02-16 23:17:07 +01:00
David Schweikert d731dfc5b1 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) 2012-02-16 23:07:05 +01:00
David Schweikert b788ca80ef Remove old notes 2012-02-16 22:59:53 +01:00
David Schweikert de94a7d0ff compatibility fixes (always use function prototypes) 2012-02-16 21:31:28 +01:00
David Schweikert 9d23ce7a11 finish -g rewrite 2012-02-16 21:28:46 +01:00
David Schweikert 7f70bc3343 portability fixes 2012-02-15 23:25:06 +01:00
David Schweikert 95d1200994 -g option (generate): exclude network and broadcast address for cidr ranges (idea by Eric Brander) 2012-02-13 22:04:25 +01:00
David Schweikert 65cfc7bc89 Update date in changelog 2011-12-28 14:53:40 +01:00
David Schweikert 38e93966d5 Release 3.0 2011-12-28 14:50:03 +01:00
David Schweikert 49d56451d4 website is now fping.org 2011-12-28 14:32:43 +01:00
David Schweikert 54bcc5665d prepare 3.0-rc3 2011-12-22 16:03:48 +01:00
David Schweikert 1ad4e3a4d9 fix calculation of select timeout, implement select restart on EINTR 2011-12-22 16:01:10 +01:00
David Schweikert 26bc736025 Merge branch 'master' of github.com:schweikert/fping 2011-12-19 10:01:08 +01:00
David Schweikert 14f45a6872 README small fixes 2011-12-19 10:00:54 +01:00
David Schweikert 23848d5481 Document ignored parameter -T 2011-12-18 00:29:53 +01:00
David Schweikert 80122ac930 use last_send_time instead of current_time to schedule next events after a ping (should be a bit more precise) 2011-12-15 18:10:25 +01:00
David Schweikert 02b3289e69 prepare 3.0-rc2 2011-12-15 17:57:14 +01:00
David Schweikert e372ac97bc fix negative number issue 2011-12-15 17:52:43 +01:00
David Schweikert 2b7a05c66b Mark this as 3.0-rc1 2011-12-15 16:48:32 +01:00
David Schweikert 051e4876e5 -T option is now deprecated 2011-12-15 16:25:14 +01:00
David Schweikert c081790bf8 Mark myself as maintainer 2011-12-15 15:17:25 +01:00
David Schweikert daefc3e852 use spaces for indenting 2011-12-15 15:15:05 +01:00
David Schweikert c5a8931c39 prepare v3.0 2011-12-15 14:57:07 +01:00
David Schweikert 7e162406e2 merge changes from Tobias Oetiker (already committed in master) 2011-12-15 14:47:49 +01:00
David Schweikert 66909a30c5 integrate changes by Tobias Oetiker from SmokePing distribution: fping-2.4b2_to4-ipv6 2011-12-15 14:41:12 +01:00
David Schweikert 11184c5cef further work on faster loop 2011-12-15 14:26:52 +01:00
David Schweikert fdae03d016 further work on faster loop 2011-12-15 13:47:56 +01:00
David Schweikert 57650049fb further work on faster loop 2011-12-15 09:23:04 +01:00
David Schweikert af8103e055 Initial work on new loop 2011-12-10 16:07:12 -05:00
David Schweikert 873bc1df2d Imported Debian patches: 2.4b2-to-ipv6-16.1 2011-12-09 20:06:12 -05:00
28 changed files with 3740 additions and 7802 deletions
+20
View File
@@ -0,0 +1,20 @@
*.tar.gz
*~
.deps
Makefile
Makefile.in
aclocal.m4
autom4te.cache
config.guess
config.h
config.h.in
config.log
config.status
config.sub
configure
depcomp
install-sh
missing
src/*.o
src/fping
stamp-h1
Executable → Regular
View File
Executable → Regular
+496 -301
View File
@@ -1,3 +1,198 @@
2012-05-22 David Schweikert <david@schweikert.ch>
* Version 3.2rc1
* 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
@@ -9,304 +204,304 @@ Jeroen Massar
- 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
***************************************************
*/
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
***************************************************
*/
Executable → Regular
+2 -10
View File
@@ -3,6 +3,8 @@ 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.
@@ -173,13 +175,3 @@ operates.
script, and exit.
`configure' also accepts some other, not widely useful, options.
Problems and Notes
==================
Apr 2001
- Making fping requires 'm4' and 'autoheader'
- fping is known not to build on Solaris. (Solaris lacks 'autoheader')
- fping has been reported to bug out if a file contains more than 3600 addresses to scan.
- If you are having problems compiling, try an earlier version (2.2b2 for example)
Executable → Regular
+1 -5
View File
@@ -1,5 +1 @@
sbin_PROGRAMS = fping
fping_SOURCES = fping.c options.h linux.h
man_MANS = fping.8
AUTOMAKE_OPTIONS=foreign
EXTRA_DIST = $(man_MANS)
SUBDIRS = doc src
-397
View File
@@ -1,397 +0,0 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
CC = @CC@
CPP = @CPP@
MAKEINFO = @MAKEINFO@
PACKAGE = @PACKAGE@
VERSION = @VERSION@
sbin_PROGRAMS = fping
fping_SOURCES = fping.c options.h linux.h
man_MANS = fping.8
AUTOMAKE_OPTIONS = foreign
EXTRA_DIST = $(man_MANS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
PROGRAMS = $(sbin_PROGRAMS)
DEFS = @DEFS@ -I. -I$(srcdir) -I.
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
fping_OBJECTS = fping.o
fping_LDADD = $(LDADD)
fping_DEPENDENCIES =
fping_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
man8dir = $(mandir)/man8
MANS = $(man_MANS)
NROFF = nroff
DIST_COMMON = README ./stamp-h.in COPYING ChangeLog INSTALL Makefile.am \
Makefile.in acconfig.h aclocal.m4 config.h.in configure configure.in \
install-sh missing mkinstalldirs
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP_ENV = --best
SOURCES = $(fping_SOURCES)
OBJECTS = $(fping_OBJECTS)
all: all-redirect
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): configure.in
cd $(srcdir) && $(ACLOCAL)
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
config.h: stamp-h
@if test ! -f $@; then \
rm -f stamp-h; \
$(MAKE) stamp-h; \
else :; fi
stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES= CONFIG_HEADERS=config.h \
$(SHELL) ./config.status
@echo timestamp > stamp-h 2> /dev/null
$(srcdir)/config.h.in: $(srcdir)/stamp-h.in
@if test ! -f $@; then \
rm -f $(srcdir)/stamp-h.in; \
$(MAKE) $(srcdir)/stamp-h.in; \
else :; fi
$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
cd $(top_srcdir) && $(AUTOHEADER)
@echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
mostlyclean-hdr:
clean-hdr:
distclean-hdr:
-rm -f config.h
maintainer-clean-hdr:
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
else :; fi; \
done
uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
done
.c.o:
$(COMPILE) -c $<
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
fping: $(fping_OBJECTS) $(fping_DEPENDENCIES)
@rm -f fping
$(LINK) $(fping_LDFLAGS) $(fping_OBJECTS) $(fping_LDADD) $(LIBS)
install-man8:
$(mkinstalldirs) $(DESTDIR)$(man8dir)
@list='$(man8_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
case "$$i" in \
*.8*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
else file=$$i; fi; \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
done
uninstall-man8:
@list='$(man8_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
case "$$i" in \
*.8*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
rm -f $(DESTDIR)$(man8dir)/$$inst; \
done
install-man: $(MANS)
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-man8
uninstall-man:
@$(NORMAL_UNINSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-man8
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
-rm -rf $(distdir)
GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
mkdir $(distdir)/=build
mkdir $(distdir)/=inst
dc_install_base=`cd $(distdir)/=inst && pwd`; \
cd $(distdir)/=build \
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) dist
-rm -rf $(distdir)
@banner="$(distdir).tar.gz is ready for distribution"; \
dashes=`echo "$$banner" | sed s/./=/g`; \
echo "$$dashes"; \
echo "$$banner"; \
echo "$$dashes"
dist: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
dist-all: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
distdir: $(DISTFILES)
-rm -rf $(distdir)
mkdir $(distdir)
-chmod 777 $(distdir)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
all-recursive-am: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
install-exec-am: install-sbinPROGRAMS
install-exec: install-exec-am
install-data-am: install-man
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS uninstall-man
uninstall: uninstall-am
all-am: Makefile $(PROGRAMS) $(MANS) config.h
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man8
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-hdr mostlyclean-sbinPROGRAMS \
mostlyclean-compile mostlyclean-tags \
mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-hdr clean-sbinPROGRAMS clean-compile clean-tags \
clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-hdr distclean-sbinPROGRAMS distclean-compile \
distclean-tags distclean-generic clean-am
distclean: distclean-am
-rm -f config.status
maintainer-clean-am: maintainer-clean-hdr maintainer-clean-sbinPROGRAMS \
maintainer-clean-compile maintainer-clean-tags \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-am
-rm -f config.status
.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
mostlyclean-sbinPROGRAMS distclean-sbinPROGRAMS clean-sbinPROGRAMS \
maintainer-clean-sbinPROGRAMS uninstall-sbinPROGRAMS \
install-sbinPROGRAMS mostlyclean-compile distclean-compile \
clean-compile maintainer-clean-compile install-man8 uninstall-man8 \
install-man uninstall-man tags mostlyclean-tags distclean-tags \
clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
check-am installcheck-am installcheck all-recursive-am install-exec-am \
install-exec install-data-am install-data install-am install \
uninstall-am uninstall all-redirect all-am all installdirs \
mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
Executable → Regular
+25 -54
View File
@@ -1,64 +1,35 @@
fping README
------------
fping 3 README
--------------
fping is a program to send ICMP echo probes to network hosts, similar to ping,
but much better performing when pinging multiple hosts. fping has a long long
story: Roland Schemers did publish a first version of it in 1992 and it has
established itself since then as a standard tool.
Current maintainer:
David Schweikert <david@schweikert.ch>
David Papp - david@remote.net
Website:
http://www.fping.org
Installation
------------
If you want to install fping from source, proceed as follows:
fping website: http://www.fping.com
1. Run ./configure with the correct arguments
(see: ./configure --help)
2. Run make; make install
3. Make fping either setuid, or, if under Linux:
sudo setcap cap_net_raw+ep fping
4. Have a look at the fping(1) manual for usage help
(fping -h will also give a minimal help output)
Credits
-------
Original author: Roland Schemers (schemers@stanford.edu)
Previous maintainer: RL "Bob" Morgan (morgan@stanford.edu)
IPv6 Support: Jeroen Massar (jeroen@unfix.org / jeroen@ipng.nl)
Suggestions and patches:
....
------------------------------------------------------------------------------
Original README from 1992! 5 years ago? Time flies...
fping - A tool to quickly ping N number of hosts to determine
their reachability.
Roland J. Schemers III - Stanford University
schemers@Stanford.EDU
fping is a ping(1) like program which uses the Internet Control
Message Protocol (ICMP) echo request to determine if a host is
up. fping is different from ping in that you can specify any
number of hosts on the command line, or specify a file containing
the lists of hosts to ping. Instead of trying one host until it
timeouts or replies, fping will send out a ping packet and move
on to the next host in a round-robin fashion. If a host replies,
it is noted and removed from the list of hosts to check. If a host
does not respond within a certain time limit and/or retry limit it
will be considered unreachable.
Site
Stanford University has a large TCP/IP network with over 16,000
assigned IP addresses and over 100 IP subnets.
Problem and Issues
With a large a number of IP addresses in use, its becomes more and
more time consuming to check on which IP addresses are actively
in use, and which critical machines (routers, bridges, servers, etc)
are reachable. One example is we have a program which goes through
all of our routers arp caches looking for IP addresses that are in
use. After finding a list of IP addresses that aren't in any arp
caches fping can then be used to see if these IP addresses really
aren't being used, or are just behind the routers. Checking 2500
hosts (99% of which are unreachable) via ping can take hours.
fping was written to solve the problem of pinging N number of hosts
in an efficient manner. By sending out pings in a round-robin fashion
and checking on responses as they come in at random, a large number of
hosts can be checked at once.
Unlike ping, fping is meant to be used in scripts and its
output is easy to parse.
to enable IPV6 compile with -DIPV6
-18
View File
@@ -1,18 +0,0 @@
#ifndef CONFIG_H
#define CONFIG_H
@TOP@
/* VERSION (from configure.in) */
#undef VERSION
@BOTTOM@
/* some OSes do not define this ... lets take a wild guess */
#ifndef INADDR_NONE
# define INADDR_NONE 0xffffffffU
#endif
#endif /* CONFIG_H */
Vendored
-127
View File
@@ -1,127 +0,0 @@
dnl aclocal.m4 generated automatically by aclocal 1.4
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE.
# Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things.
# But this isn't really a big deal.
# serial 1
dnl Usage:
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
AC_DEFUN(AM_INIT_AUTOMAKE,
[AC_REQUIRE([AC_PROG_INSTALL])
PACKAGE=[$1]
AC_SUBST(PACKAGE)
VERSION=[$2]
AC_SUBST(VERSION)
dnl test to see if srcdir already configured
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
fi
ifelse([$3],,
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM])
dnl FIXME This is truly gross.
missing_dir=`cd $ac_aux_dir && pwd`
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_REQUIRE([AC_PROG_MAKE_SET])])
#
# Check to make sure that the build environment is sane.
#
AC_DEFUN(AM_SANITY_CHECK,
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
echo timestamp > conftestfile
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
if test "[$]*" = "X"; then
# -L didn't work.
set X `ls -t $srcdir/configure conftestfile`
fi
if test "[$]*" != "X $srcdir/configure conftestfile" \
&& test "[$]*" != "X conftestfile $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
alias in your environment])
fi
test "[$]2" = conftestfile
)
then
# Ok.
:
else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
rm -f conftest*
AC_MSG_RESULT(yes)])
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
dnl The program must properly implement --version.
AC_DEFUN(AM_MISSING_PROG,
[AC_MSG_CHECKING(for working $2)
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
if ($2 --version) < /dev/null > /dev/null 2>&1; then
$1=$2
AC_MSG_RESULT(found)
else
$1="$3/missing $2"
AC_MSG_RESULT(missing)
fi
AC_SUBST($1)])
# Like AC_CONFIG_HEADER, but automatically create stamp file.
AC_DEFUN(AM_CONFIG_HEADER,
[AC_PREREQ([2.12])
AC_CONFIG_HEADER([$1])
dnl When config.status generates a header, we must update the stamp-h file.
dnl This file resides in the same directory as the config header
dnl that is generated. We must strip everything past the first ":",
dnl and everything past the last "/".
AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
<<am_indx=1
for am_file in <<$1>>; do
case " <<$>>CONFIG_HEADERS " in
*" <<$>>am_file "*<<)>>
echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
;;
esac
am_indx=`expr "<<$>>am_indx" + 1`
done<<>>dnl>>)
changequote([,]))])
Executable
+19
View File
@@ -0,0 +1,19 @@
#!/bin/sh
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
Executable
+2
View File
@@ -0,0 +1,2 @@
#!/bin/sh
autoreconf -i
-40
View File
@@ -1,40 +0,0 @@
/* config.h.in. Generated automatically from configure.in by autoheader. */
#ifndef CONFIG_H
#define CONFIG_H
/* VERSION (from configure.in) */
#undef VERSION
/* Define if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define if you have the <sys/file.h> header file. */
#undef HAVE_SYS_FILE_H
/* Define if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define if you have the nsl library (-lnsl). */
#undef HAVE_LIBNSL
/* Define if you have the socket library (-lsocket). */
#undef HAVE_LIBSOCKET
/* Name of package */
#undef PACKAGE
/* Version number of package */
#undef VERSION
/* some OSes do not define this ... lets take a wild guess */
#ifndef INADDR_NONE
# define INADDR_NONE 0xffffffffU
#endif
#endif /* CONFIG_H */
Vendored
-3258
View File
File diff suppressed because it is too large Load Diff
+54
View File
@@ -0,0 +1,54 @@
dnl Process this file with autoconf to produce a configure script.
dnl Minimum Autoconf version required.
AC_PREREQ(2.59)
AC_INIT([fping],[3.2])
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE([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
-32
View File
@@ -1,32 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(fping.c)
AM_INIT_AUTOMAKE(fping, 2.4b2_to_ipv6)
AM_CONFIG_HEADER(config.h)
#VERSION=2.4b2
#PACKAGE=fping
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
AC_DEFINE_UNQUOTED(VERSION,"$VERSION")
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
dnl Checks for header files.
AC_CHECK_HEADERS(unistd.h sys/file.h stdlib.h sys/select.h)
AC_OUTPUT(Makefile)
+2
View File
@@ -0,0 +1,2 @@
man_MANS = fping.8
EXTRA_DIST = $(man_MANS)
+43
View File
@@ -0,0 +1,43 @@
Original README (from 1992)
fping - A tool to quickly ping N number of hosts to determine
their reachability.
Roland J. Schemers III - Stanford University
schemers@Stanford.EDU
fping is a ping(1) like program which uses the Internet Control
Message Protocol (ICMP) echo request to determine if a host is
up. fping is different from ping in that you can specify any
number of hosts on the command line, or specify a file containing
the lists of hosts to ping. Instead of trying one host until it
timeouts or replies, fping will send out a ping packet and move
on to the next host in a round-robin fashion. If a host replies,
it is noted and removed from the list of hosts to check. If a host
does not respond within a certain time limit and/or retry limit it
will be considered unreachable.
Site
Stanford University has a large TCP/IP network with over 16,000
assigned IP addresses and over 100 IP subnets.
Problem and Issues
With a large a number of IP addresses in use, its becomes more and
more time consuming to check on which IP addresses are actively
in use, and which critical machines (routers, bridges, servers, etc)
are reachable. One example is we have a program which goes through
all of our routers arp caches looking for IP addresses that are in
use. After finding a list of IP addresses that aren't in any arp
caches fping can then be used to see if these IP addresses really
aren't being used, or are just behind the routers. Checking 2500
hosts (99% of which are unreachable) via ping can take hours.
fping was written to solve the problem of pinging N number of hosts
in an efficient manner. By sending out pings in a round-robin fashion
and checking on responses as they come in at random, a large number of
hosts can be checked at once.
Unlike ping, fping is meant to be used in scripts and its
output is easy to parse.
Executable → Regular
+227 -220
View File
@@ -1,220 +1,227 @@
.TH fping l
.SH NAME
fping \- send ICMP ECHO_REQUEST packets to network hosts
.SH SYNOPSIS
.B fping
[ \fIoptions\fR ]
[ \fIsystems...\fR ]
.SH DESCRIPTION
.NXR "fping command"
.NXR "ICMP ECHO_REQUEST"
.B fping
is a
.MS ping 8
like program which uses the Internet Control
Message Protocol (ICMP) echo request to determine if a target host is
responding.
.B 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,
.B fping
will send out a ping packet and move
on to the next target in a round-robin fashion.
.PP
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.
.B fping
also supports sending a specified number of pings to a target, or
looping indefinitely (as in
.B ping
).
.PP
Unlike
.B ping
,
.B fping
is meant to be used in scripts, so its output is designed to be
easy to parse.
.SH OPTIONS
.IP \fB-a\fR 5
Show systems that are alive.
.IP \fB-A\fR 5
Display targets by address rather than DNS name.
.IP \fB-b\fIn\fR 5
Number of bytes of ping data to send. The minimum size (normally 12)
allows room for the data that
.B 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
.B ping.
Maximum is the theoretical maximum IP datagram size (64K), though most
systems limit this to a smaller, system-dependent number.
.IP \fB-B\fIn\fR 5
In the default mode,
.B 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 is multiplied on each successive request; it must
be entered as a floating-point number (x.y). The default is 1.5.
.IP \fB-c\fR 5
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).
.IP \fB-C\fR 5
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.
.IP \fB-d\fR 5
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.
.IP \fB-e\fR 5
Show elapsed (round-trip) time of packets.
.IP \fB-f\fR 5
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
.IP \fB-g\fR 5
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.
ex. To ping the class C 192.168.1.x, the specified command line could look like either:
fping -g 192.168.1.0/24
or
fping -g 192.168.1.0 192.168.1.255
.IP \fB-h\fR 5
Print usage message.
.IP \fB-i\fIn\fR 5
The minimum amount of time (in milliseconds) between sending a ping packet to any target (default is 25).
.IP \fB-l\fR 5
Loop sending packets to each target indefinitely. Can be interrupted
with ctl-C; statistics about responses for each target are then displayed.
.IP \fB-m\fR 5
Send pings to each of a target host's multiple interfaces.
.IP \fB-n\fR 5
Same as -d.
.IP \fB-p\fR 5
In looping or counting modes (-l, -c, or -C), this parameter sets the
time in milliseconds that
.B fping
waits between successive packets to an individual target. Default is
1000.
.IP \fB-q\fR 5
Quiet. Don't show per-target results, just set final exit status.
.IP \fB-Q\fIn\fR 5
Like -q, but show summary results every n seconds.
.IP \fB-r\fIn\fR 5
Retry limit (default 3). This is the number of times an attempt at pinging
a target will be made, not including the first try.
.IP \fB-s\fR 5
Print cumulative statistics upon exit.
.IP \fB-t\fIn\fR 5
Initial target timeout in milliseconds (default 500). In the default
mode, this is the amount of time that
.B fping
waits for a response to its first request. Successive timeouts are
multiplied by the backoff factor.
.IP \fB-u\fR 5
Show targets that are unreachable.
.IP \fB-v\fR 5
Print
.B fping
version information.
.SH EXAMPLES
The following perl script will check a list of hosts and send mail if
any are unreachable. It uses the open2 function which allows a program
to be opened for reading and writing. fping does not start pinging the
list of systems until it reads EOF, which it gets after INPUT is closed.
Sure the open2 usage is not needed in this example, but it's a good open2
example none the less.
.nf
#!/usr/local/bin/perl
require 'open2.pl';
$MAILTO = "root";
$pid = &open2("OUTPUT","INPUT","/usr/local/bin/fping -u");
@check=("slapshot","foo","foobar");
foreach(@check) { print INPUT "$_\\n"; }
close(INPUT);
@output=<OUTPUT>;
if ($#output != -1) {
chop($date=`date`);
open(MAIL,"|mail -s 'unreachable systems' $MAILTO");
print MAIL "\\nThe following systems are unreachable as of: $date\\n\\n";
print MAIL @output;
close MAIL;
}
.ni
Another good example is when you want to perform an action only on hosts
that are currently reachable.
.nf
#!/usr/local/bin/perl
$hosts_to_backup = `cat /etc/hosts.backup | fping -a`;
foreach $host (split(/\\n/,$hosts_to_backup)) {
# do it
}
.ni
.SH AUTHORS
.nf
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,
fping website: http://www.fping.com
.ni
.SH 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.
.SH BUGS
Ha! If we knew of any we would have fixed them!
.SH 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 (when fping is installed setuid root) , normal users can't specify
the following:
.nf
-i n where n < 10 msec
-r n where n > 20
-t n where n < 250 msec
.ni
.SH SEE ALSO
netstat(1), ping(8), ifconfig(8c)
.TH fping 8
.SH NAME
fping \- send ICMP ECHO_REQUEST packets to network hosts
.SH SYNOPSIS
.B fping
[ \fIoptions\fR ]
[ \fIsystems...\fR ]
.SH DESCRIPTION
.B fping
is a program like
.B ping(8)
which uses the Internet Control
Message Protocol (ICMP) echo request to determine if a target host is
responding.
.B 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,
.B fping
will send out a ping packet and move
on to the next target in a round-robin fashion.
.PP
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.
.B fping
also supports sending a specified number of pings to a target, or
looping indefinitely (as in
.B ping
).
.PP
Unlike
.B ping,
.B fping
is meant to be used in scripts, so its output is designed to be
easy to parse.
.SH OPTIONS
.IP \fB\-a\fR 5
Show systems that are alive.
.IP \fB\-A\fR 5
Display targets by address rather than DNS name.
.IP \fB\-b\fIn\fR 5
Number of bytes of ping data to send. The minimum size (normally 12)
allows room for the data that
.B 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
.B ping.
Maximum is the theoretical maximum IP datagram size (64K), though most
systems limit this to a smaller, system-dependent number.
.IP \fB\-B\fIn\fR 5
In the default mode,
.B 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 is multiplied on each successive request; it must
be entered as a floating-point number (x.y). The default is 1.5.
.IP \fB\-c\fR 5
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).
.IP \fB-C\fR 5
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.
.IP \fB\-d\fR 5
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.
.IP \fB\-e\fR 5
Show elapsed (round-trip) time of packets.
.IP \fB\-f\fR 5
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
.IP \fB\-g\fR 5
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
.IP \fB\-h\fR 5
Print usage message.
.IP \fB\-i\fIn\fR 5
The minimum amount of time (in milliseconds) between sending a ping packet to any target (default is 25).
.IP \fB\-l\fR 5
Loop sending packets to each target indefinitely. Can be interrupted
with Ctrl-C; statistics about responses for each target are then displayed.
.IP \fB\-m\fR 5
Send pings to each of a target host's multiple interfaces.
.IP \fB\-n\fR 5
Same as \-d.
.IP \fB\-p\fR 5
In looping or counting modes (\-l, \-c, or \-C), this parameter sets the
time in milliseconds that
.B fping
waits between successive packets to an individual target. Default is
1000.
.IP \fB\-q\fR 5
Quiet. Don't show per-target results, just set final exit status.
.IP \fB\-Q\fIn\fR 5
Like \-q, but show summary results every n seconds.
.IP \fB\-r\fIn\fR 5
Retry limit (default 3). This is the number of times an attempt at pinging
a target will be made, not including the first try.
.IP \fB\-s\fR 5
Print cumulative statistics upon exit.
.IP \fB\-S\fIaddr\fR 5
Set source address.
.IP \fB\-I\fIif\fR 5
Set the interface (requires SO_BINDTODEVICE support)
.IP \fB\-t\fIn\fR 5
Initial target timeout in milliseconds (default 500). In the default
mode, this is the amount of time that
.B fping
waits for a response to its first request. Successive timeouts are
multiplied by the backoff factor.
.IP \fB\-T\fIn\fR 5
Ignored (for compatibility with fping 2.4).
.IP \fB\-u\fR 5
Show targets that are unreachable.
.IP \fB\-T\fIn\fR 5
Set the typ of service flag (TOS). \fIn\fR can be either decimal or hexadecimal (0xh) format.
.IP \fB\-v\fR 5
Print
.B fping
version information.
.IP \fB-H\fIn\fR 5
Set the IP TTL field (time to live hops).
.SH EXAMPLES
The following perl script will check a list of hosts and send mail if
any are unreachable. It uses the open2 function which allows a program
to be opened for reading and writing. fping does not start pinging the
list of systems until it reads EOF, which it gets after INPUT is closed.
Sure the open2 usage is not needed in this example, but it's a good open2
example none the less.
.nf
#!/usr/bin/perl
require 'open2.pl';
$MAILTO = "root";
$pid = &open2("OUTPUT","INPUT","/usr/local/bin/fping -u");
@check=("slapshot","foo","foobar");
foreach(@check) { print INPUT "$_\\n"; }
close(INPUT);
@output=<OUTPUT>;
if ($#output != -1) {
chop($date=`date`);
open(MAIL,"|mail -s 'unreachable systems' $MAILTO");
print MAIL "\\nThe following systems are unreachable as of: $date\\n\\n";
print MAIL @output;
close MAIL;
}
.fi
Another good example is when you want to perform an action only on hosts
that are currently reachable.
.nf
#!/usr/bin/perl
$hosts_to_backup = `cat /etc/hosts.backup | fping -a`;
foreach $host (split(/\\n/,$hosts_to_backup)) {
# do it
}
.fi
.SH AUTHORS
.nf
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
.fi
.SH 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.
.SH BUGS
Ha! If we knew of any we would have fixed them!
.SH 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 (when fping is installed setuid root) , normal users can't specify
the following:
.nf
-i n where n < 10 msec
-r n where n > 20
-t n where n < 250 msec
.fi
.SH SEE ALSO
netstat(1), ping(8), ifconfig(8c)
-2742
View File
File diff suppressed because it is too large Load Diff
-238
View File
@@ -1,238 +0,0 @@
#! /bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
#
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd="$cpprog"
shift
continue;;
-d) dir_arg=true
shift
continue;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
-s) stripcmd="$stripprog"
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
esac
done
if [ x"$src" = x ]
then
echo "install: no input file specified"
exit 1
else
true
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d $dst ]; then
instcmd=:
else
instcmd=mkdir
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f $src -o -d $src ]
then
true
else
echo "install: $src does not exist"
exit 1
fi
if [ x"$dst" = x ]
then
echo "install: no destination specified"
exit 1
else
true
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d $dst ]
then
dst="$dst"/`basename $src`
else
true
fi
fi
## this sed command emulates the dirname command
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
oIFS="${IFS}"
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS="${oIFS}"
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp="${pathcomp}${1}"
shift
if [ ! -d "${pathcomp}" ] ;
then
$mkdirprog "${pathcomp}"
else
true
fi
pathcomp="${pathcomp}/"
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd $dst &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
else
dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
else
true
fi
# Make a temp file name in the proper directory.
dsttmp=$dstdir/#inst.$$#
# Move or copy the file name to the temp name
$doit $instcmd $src $dsttmp &&
trap "rm -f ${dsttmp}" 0 &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
$doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
exit 0
-133
View File
@@ -1,133 +0,0 @@
/*
** Special compatibility definitions for linux.
**
** On the linux platform, several IP-related structures have
** different names. Also some of the structure fields have
** other names, although the layout is (obviously) fixed.
** Several constants are not defined in the standard files.
**
** @(#)linux.h e07@nikhef.nl (Eric Wassenaar) 960301
*/
#if defined(linux)
#include <endian.h> /* to get the proper BYTE_ORDER */
#if !defined(BYTE_ORDER) || (BYTE_ORDER != BIG_ENDIAN && \
BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != PDP_ENDIAN)
error "Undefined or invalid BYTE_ORDER";
#endif
/*
* Structure of an ip header, without options.
*/
#define IPVERSION 4
struct ip {
#if (BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN)
u_char ip_hl:4, /* header length */
ip_v:4; /* version */
#else
u_char ip_v:4, /* version */
ip_hl:4; /* header length */
#endif
u_char ip_tos; /* type of service */
short ip_len; /* total length */
u_short ip_id; /* identification */
short ip_off; /* fragment offset field */
#define IP_DF 0x4000 /* dont fragment flag */
#define IP_MF 0x2000 /* more fragments flag */
u_char ip_ttl; /* time to live */
u_char ip_p; /* protocol */
u_short ip_sum; /* checksum */
struct in_addr ip_src,ip_dst; /* source and dest address */
};
#define IP_MAXPACKET 65535 /* maximum packet size */
/*
* Structure of an icmp header.
*/
struct icmp {
u_char icmp_type; /* type of message, see below */
u_char icmp_code; /* type sub code */
u_short icmp_cksum; /* ones complement cksum of struct */
union {
u_char ih_pptr; /* ICMP_PARAMPROB */
struct in_addr ih_gwaddr; /* ICMP_REDIRECT */
struct ih_idseq {
n_short icd_id;
n_short icd_seq;
} ih_idseq;
int ih_void;
} icmp_hun;
#define icmp_pptr icmp_hun.ih_pptr
#define icmp_gwaddr icmp_hun.ih_gwaddr
#define icmp_id icmp_hun.ih_idseq.icd_id
#define icmp_seq icmp_hun.ih_idseq.icd_seq
#define icmp_void icmp_hun.ih_void
union {
struct id_ts {
n_time its_otime;
n_time its_rtime;
n_time its_ttime;
} id_ts;
struct id_ip {
struct ip idi_ip;
/* options and then 64 bits of data */
} id_ip;
u_long id_mask;
char id_data[1];
} icmp_dun;
#define icmp_otime icmp_dun.id_ts.its_otime
#define icmp_rtime icmp_dun.id_ts.its_rtime
#define icmp_ttime icmp_dun.id_ts.its_ttime
#define icmp_ip icmp_dun.id_ip.idi_ip
#define icmp_mask icmp_dun.id_mask
#define icmp_data icmp_dun.id_data
};
#define ICMP_MINLEN 8 /* abs minimum */
/*
* Definition of icmp type and code field values.
*/
#define ICMP_ECHOREPLY 0 /* echo reply */
#define ICMP_UNREACH 3 /* dest unreachable, codes: */
#define ICMP_UNREACH_NET 0 /* bad net */
#define ICMP_UNREACH_HOST 1 /* bad host */
#define ICMP_UNREACH_PROTOCOL 2 /* bad protocol */
#define ICMP_UNREACH_PORT 3 /* bad port */
#define ICMP_UNREACH_NEEDFRAG 4 /* IP_DF caused drop */
#define ICMP_UNREACH_SRCFAIL 5 /* src route failed */
#define ICMP_SOURCEQUENCH 4 /* packet lost, slow down */
#define ICMP_REDIRECT 5 /* shorter route, codes: */
#define ICMP_REDIRECT_NET 0 /* for network */
#define ICMP_REDIRECT_HOST 1 /* for host */
#define ICMP_REDIRECT_TOSNET 2 /* for tos and net */
#define ICMP_REDIRECT_TOSHOST 3 /* for tos and host */
#define ICMP_ECHO 8 /* echo service */
#define ICMP_TIMXCEED 11 /* time exceeded, code: */
#define ICMP_TIMXCEED_INTRANS 0 /* ttl==0 in transit */
#define ICMP_TIMXCEED_REASS 1 /* ttl==0 in reass */
#define ICMP_PARAMPROB 12 /* ip header bad */
#define ICMP_TSTAMP 13 /* timestamp request */
#define ICMP_TSTAMPREPLY 14 /* timestamp reply */
#define ICMP_IREQ 15 /* information request */
#define ICMP_IREQREPLY 16 /* information reply */
#define ICMP_MASKREQ 17 /* address mask request */
#define ICMP_MASKREPLY 18 /* address mask reply */
/*
* Definitions needed for the udp header structure.
*/
#define uh_sport source
#define uh_dport dest
#define uh_ulen len
#define uh_sum check
#endif /* linux */
-190
View File
@@ -1,190 +0,0 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
case "$1" in
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing - GNU libit 0.0"
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
aclocal)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acinclude.m4' or \`configure.in'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`configure.in'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acconfig.h' or \`configure.in'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
makeinfo)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
touch $file
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
-36
View File
@@ -1,36 +0,0 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Last modified: 1994-03-25
# Public domain
errstatus=0
for file in ${1+"$@"} ; do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d in ${1+"$@"} ; do
pathcomp="$pathcomp$d"
case "$pathcomp" in
-* ) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp" 1>&2
mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$?
fi
if test ! -d "$pathcomp"; then
errstatus=$lasterr
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# mkinstalldirs ends here
+3
View File
@@ -0,0 +1,3 @@
sbin_PROGRAMS = fping
fping_SOURCES = fping.c options.h
fping_DEPENDENCIES = ../config.h
+2845
View File
File diff suppressed because it is too large Load Diff
Executable → Regular
View File
+1
View File
@@ -0,0 +1 @@
gcc -DHAVE_CONFIG_H -D_BSD_SOURCE -D_POSIX_SOURCE -I.. -Wall -std=c89 -pedantic -c -o fping.o fping.c
-1
View File
@@ -1 +0,0 @@
timestamp