Compare commits
64
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
780865c8ee | ||
|
|
063ee44417 | ||
|
|
70b8d7e21e | ||
|
|
967266168d | ||
|
|
2cbac9f893 | ||
|
|
c3e8dbc649 | ||
|
|
ecaca317d7 | ||
|
|
74066a00ea | ||
|
|
293a632056 | ||
|
|
2f94a50ae6 | ||
|
|
d4c853f4b1 | ||
|
|
2176f2a19f | ||
|
|
754feb217c | ||
|
|
940cbed179 | ||
|
|
8cb74ebcce | ||
|
|
973a48096b | ||
|
|
19b041904b | ||
|
|
d433646025 | ||
|
|
6f919ed54b | ||
|
|
bc28412671 | ||
|
|
adf7be95fd | ||
|
|
6161a0552d | ||
|
|
d4d4106faa | ||
|
|
c4ba6af7b3 | ||
|
|
bb21654691 | ||
|
|
2134d569b4 | ||
|
|
8047122e85 | ||
|
|
c3c0eca384 | ||
|
|
457c9818d0 | ||
|
|
9b82b5e716 | ||
|
|
01db781375 | ||
|
|
5018cb8234 | ||
|
|
ac6bbc8b19 | ||
|
|
007d8c4c5c | ||
|
|
227adfd3c7 | ||
|
|
7f35a34eb5 | ||
|
|
d731dfc5b1 | ||
|
|
b788ca80ef | ||
|
|
de94a7d0ff | ||
|
|
9d23ce7a11 | ||
|
|
7f70bc3343 | ||
|
|
95d1200994 | ||
|
|
65cfc7bc89 | ||
|
|
38e93966d5 | ||
|
|
49d56451d4 | ||
|
|
54bcc5665d | ||
|
|
1ad4e3a4d9 | ||
|
|
26bc736025 | ||
|
|
14f45a6872 | ||
|
|
23848d5481 | ||
|
|
80122ac930 | ||
|
|
02b3289e69 | ||
|
|
e372ac97bc | ||
|
|
2b7a05c66b | ||
|
|
051e4876e5 | ||
|
|
c081790bf8 | ||
|
|
daefc3e852 | ||
|
|
c5a8931c39 | ||
|
|
7e162406e2 | ||
|
|
66909a30c5 | ||
|
|
11184c5cef | ||
|
|
fdae03d016 | ||
|
|
57650049fb | ||
|
|
af8103e055 |
+20
@@ -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
|
||||
@@ -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
|
||||
***************************************************
|
||||
*/
|
||||
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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:
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
autoreconf -i
|
||||
-40
@@ -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 */
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -0,0 +1,2 @@
|
||||
man_MANS = fping.8
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
@@ -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
-223
@@ -1,223 +1,227 @@
|
||||
.TH fping 8
|
||||
.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 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.
|
||||
|
||||
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-S\fIaddr\fR 5
|
||||
Set source address.
|
||||
.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
|
||||
Select timeout in seconds (default 10).
|
||||
.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/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/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)
|
||||
-238
@@ -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
|
||||
@@ -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 */
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,3 @@
|
||||
sbin_PROGRAMS = fping
|
||||
fping_SOURCES = fping.c options.h
|
||||
fping_DEPENDENCIES = ../config.h
|
||||
+2845
File diff suppressed because it is too large
Load Diff
Executable → Regular
Executable
+1
@@ -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 +0,0 @@
|
||||
timestamp
|
||||
Reference in New Issue
Block a user