66 Commits

Author SHA1 Message Date
maxim
a8e402b266 WARNS fixes.
Submitted by:	kris
Reviewed by:	bde
Approved by:	ru
MFC after:	2 weeks
2002-04-02 10:15:32 +00:00
maxim
b4aab89cbc style(9) cleanup.
Submitted by:	kris (an early version of this patch)
Reviewed by:	bde
Approved by:	ru
MFC after:	2 weeks
2002-04-02 09:36:46 +00:00
obrien
fef2f47e21 Style(9) local vars after 'register' removal.
Requested by:	bde
2002-03-23 18:10:59 +00:00
obrien
73c6870b18 Remove 'register' keyword.
It does not help modern compilers, and some may take some hit from it.
(I also found several functions that listed *every* of its 10 local vars with
 "register" -- just how many free registers do people think machines have?)
2002-03-20 17:55:10 +00:00
fenner
095aa99d6e Use network byte order for the ICMP sequence number. This is only
significant when monitoring packets on another system, since
 otherwise the ICMP sequence number is only used by the ping client.
2002-02-27 22:37:22 +00:00
ru
85fa9723af Fixed two bugs with the "-l preload" option:
- first ping after a preload was sent undelayed
- we could send more than -c packets in preload

PR:		bin/32354
2002-01-14 14:33:35 +00:00
iedowse
2cba2e955a The -A option (beep when packets are dropped) didn't work quite
right; after a single packet was dropped it beeped after every
transmission.

Change its implementation to only output a bell when there is an
increase in the maximum value of the number of packets that were
sent but not yet received. This has the benefit that even for very
long round-trip times, ping -A will do roughly the right thing
after a few inital false-positives.

Reviewed by:	ru
2001-09-25 20:22:33 +00:00
mjacob
4d2ef515ad Ian Dowse writes:
The original code was certainly broken; it knows that whereto is
	to be used for a sockaddr_in, so it should be declared as such.
	To support multiple protocols, there is also a sockaddr_storage
	struct that can be used; I don't think struct sockaddr is supposed
	to be used anywhere other than for casts and pointers.

Submitted by:	Ian Dowse <iedowse@maths.tcd.ie>
MFC after:	3 weeks
2001-07-07 19:09:21 +00:00
mjacob
de06014a31 Fix unaligned access faults on alpha.
This one is strange and goes against my rusty compiler knowledge.

The global declaration

struct sockaddr whereto;

produces for both i386 && alpha:

        .comm   whereto,16,1

which means common storage, byte aligned. Ahem. I though structs
were supposed to be ALDOUBLE always? I mean, w/o pragma packed?

Later on, this address is coerced to:

		to = (struct sockaddr_in *)&whereto;

Up until now, we've been fine on alpha because the address
just ended up aligned to a 4 byte boundary. Lately, though,
it end up as:

0000000120027b0f B whereto

And, tra la, you get unaligned access faults. The solution I picked, in
lieu of understanding what the compiler was doing, is to put whereto
as a union of a sockaddr and sockaddr_in. That's more formally correct
if somewhat awkward looking.
2001-07-07 05:01:06 +00:00
rwatson
88f1ced765 Modify ping so that it increases the send socket buffer size if the
user runs with privilege, allowing the sending of icmp packets with
larger size (up to 48k, the default receive buffer size in ping),
which is useful for network driver development testing, as well
as experimentation with fragmentation.

Reviewed by:	wpaul
2001-06-30 06:46:33 +00:00
phk
f77345ea80 Add a -A option to ping which beeps when packets are lost.
PR:		11818
Submitted by:	Marc Evans marc@destek.net
2001-05-24 09:17:52 +00:00
ru
af372cc53b Add new option -m which allows the user to set IP TTL. 2001-03-09 13:20:23 +00:00
kris
3cafbeab6d Format string paranoia 2000-11-19 13:30:36 +00:00
shin
d509b238de Use CMSG_LEN() to compute ping SCM_TIMESTAMP cmsg_len.
Without this, cmsg_len size should be smaller than necessary on alpha.
(Though, no obvious error was seen on ping time value on beast.)
2000-03-14 17:37:19 +00:00
shin
73d476cc64 CMSG_XXX macros alignment fixes to follow RFC2292.
Approved by: jkh

Submitted by: Partly from tech@openbsd
Reviewed by: itojun
2000-03-03 11:13:12 +00:00
shin
a430a5bc00 ping -S option was missing from IPsec merge, so enable it again.
Approved by: jkh

Submitted by: Matthew Reimer <mreimer@vpop.net>
2000-02-08 05:07:50 +00:00
billf
7bb98afc93 Brucify:
add an upper limit to -t
	match the types of return values and the variables they are stuffed in
	make the man page and usage() a little more consistantly ugly
	less obfuscation.

Submitted by:	adrian, billf
2000-01-20 20:48:51 +00:00
billf
ca5b317836 Add '-t X' which times out after pinging for X seconds.
Submitted by:	adrian
2000-01-14 23:40:38 +00:00
shin
9b5932fc47 libipsec and IPsec related apps. (and some KAME related man pages)
Reviewed by: freebsd-arch, cvs-committers
Obtained from: KAME project
2000-01-06 12:40:54 +00:00
pb
162eda3860 Make last commit bde-compliant:
- correct indentation
	- change data types for consistency with the rest of ping.c
	- create new variable separate from "answer" for clarity
1999-11-18 10:20:45 +00:00
pb
4dcdfee42a Fix aliasing bug causing in_cksum() to fail on odd packet sizes
due to compiler optimization.

PR:		bin/13292
Suggested by:	wollman
1999-11-15 20:04:53 +00:00
peter
76f0c923fe $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
mckay
4e9ef48afa Make flood ping flood again. It hasn't worked since 2.2.6. Make the "-l"
option work as described in the manual, not as another flood ping variant.

Once discussed to death with: bde
1999-05-07 14:38:48 +00:00
imp
d12a7ef464 More egcs warning fixes:
o main returns int not void
	o use braces to avoid potentially ambiguous else

Note: The fix to natd is potentially functional in nature since I used
the indentation as the right thing rather than the struct semantics.
Someone more familiar with the code should double check me on this one.

Reviewed by: obrien and chuckr
1999-04-25 22:33:30 +00:00
imp
1eb0469a28 Allow PINGing from any address on multihomed hosts
In the words of the submitter:
"The patch below allows to ping from any address on the multihomed host.
 The man page is also updated, the text was cutted from traceroute(8)."

Submitted by: Ruslan Ermilov
PR: 6832
1999-01-06 07:54:28 +00:00
des
2ee4e1fc77 Remove -c restrictions from previous commit. 1998-08-26 18:51:37 +00:00
dillon
0dd585520f (well tested at BEST): -i option can now take FP values (e.g. -i 0.1),
extremely useful for networking testing.  Other options secured from
    user-level D.O.S. attacks.  -f, -s now root-only.  -i wait times < 1.0
    root-only.  -c count limited to 100 and defaults to 16 when ping run
    by non-root user.
1998-08-26 01:58:39 +00:00
charnier
4d8552339b Correct use of .Nm. Remove unused #includes. Use warn(). cosmetic in usage()
string.
Translate 0 sec 1000000 usec to 1 sec 0 usec.
1998-07-15 06:45:02 +00:00
jb
e886c0d520 Fix an alignment problem on alpha by doing a bytewise copy. 1998-06-06 23:33:28 +00:00
fenner
2fc4e5389f Use select() timeouts instead of SIGALRM to schedule packet transmission.
Fixes bin/6649 and removes the last abusive signal handler.
Use SO_TIMESTAMP to get the kernel to timestamp packets on reception.
 Fixes bin/5658 and provides slightly better accuracy.
Explicitly zero and terminate the IP options when using -R.

PR:		bin/5658
PR:		bin/6649
1998-05-25 20:16:05 +00:00
steve
34a920572b Revert the previous fix. As it turns out Warner Losh is
working a better fix.
1998-05-25 06:53:17 +00:00
steve
6c80bd6a7d Attempt to stop another DoS attack related to ping flooding.
PR:		6649
Submitted by:	Jason Young <doogie@forbidden-donut.anet-stl.com>
1998-05-25 03:50:51 +00:00
jb
df402cb252 When a timeval is stored at the beginning of icmp_data, the fields
are unaligned for access by the alpha, so copy the value to a variable
that is aligned.

When checking the returned data, be careful to avoid confusing the
size of the icmp header with the size of a timeval. On i386 these
are both 8, but on alpha, a timeval is 16 bytes. This means that
a packet sent from an alpha contains 48 bytes of data, not 56 like
on i386.
1998-05-16 00:19:27 +00:00
phk
8a4252919b If ping write fails with short packet count, the
error message prints the two numbers backwards.
PR:		6313
Reviewed by:	phk
Submitted by:	Archie Cobbs
1998-04-15 19:55:14 +00:00
imp
4b46ef5a49 Add aback in a line a accidentally killed in my last commit.
Submitted by:	Bill Fenner
1998-04-02 04:33:18 +00:00
eivind
2e3938a9b7 Make this compile (and seemingly work). 1998-04-02 01:12:55 +00:00
imp
64af92eaa5 A fairly rare possible buffer overflow:
Theo fixed this and tqbf reported it
Obtained from: OpenBSD
1998-04-01 00:32:18 +00:00
imp
d2e80bb3ce Minor style nit noticed by bde. 1997-12-24 00:59:02 +00:00
fenner
5555a73810 Add an ntohs() and format an IP address with inet_ntoa() when
printing the details of a received ICMP packet.

PR:		bin/3766
Submitted by:	denny1@home.com (Denton Gentry)
1997-08-11 04:33:07 +00:00
julian
f4c7456c09 don't lose track of how many packets we've sent
if we get 'host unreachable'. (or any other errors than ENOBUFS)
makes -c work again even if you can't get there..
This really needs a rework..
1997-08-07 02:41:15 +00:00
bde
5aea8347db Cleaned up revisions 1.22 and 1.23.
Fixed minor bugs in revisions 1.12 and 1.23 (variables assigned to in signal
handlers weren't declared as volatile).
1997-07-20 06:09:55 +00:00
wollman
7644022078 Calculate and print out the standard deviation of the round trip times.
This isn't necessarily the best statistic, but it is by far the easiest to
calculate.  Update the man page to be more explicit about precisely which
statistics are printed out.  Revert some of jmg's bogus man page changes from
rev 1.11.
1997-07-18 17:52:05 +00:00
sef
5c5c3ffeb2 Fix a problem introduced with a recent change that caused a hang with
unreachable hosts.  Note that most of this consists of telling SIGINT
and SIGALRM to interrupt the system call, instead of restarting them.
Also try to get rid of some potential races Bruce didn't like; hopefully
they aren't a problem (potential or otherwise) now.

Reviewed by:	julian
1997-07-13 06:16:44 +00:00
julian
7b9a0408f2 don't count packets as being transmitted when we know that the sendto()
failed (e.g. ENOBUFS)
1997-07-09 20:33:58 +00:00
julian
95c4ece894 ping called printf() from a signal handler..
this is a NO-NO

re-arange to just set a "please die immediatly" flag in the signal handler
and handle this in the normal thread.

also handle ping -f better on slow links by backing off a bit when
we get a ENOBUFFS from the sendto().
1997-07-09 19:40:43 +00:00
imp
227366adfe Fix typo introduced in 1.17.
Submitted by:	"Philippe Charnier" <charnier@xp11.frmug.org>
1997-03-04 22:05:49 +00:00
imp
e5f21340d7 Check the size of the IP address reutrned from gethostbyname2, per PR
2578 from Julian A.  Likely not strictly needed, but it doesn't hurt
and protects ping against possible buffer overflows if the resolver
were to return large IP addresses.
1997-03-03 09:50:21 +00:00
imp
914ff23b93 1) Minor nits in the usage message from bde. I took out the hard tabs and
used spaces to align the second line under the program name.
2) Cache uid after call to setuid(getuid()) so we don't waste a system call
   for each packet with a call to getuid for the -v case.
3) Update manual to reflect new restriction on -l from last delta.

Suggested by:	bde, Bill Fenner
1997-03-02 20:01:13 +00:00
imp
ae1fecd92f 1) Fix usage to match convention and manual. Fix manual to match usage.
2) Must be root to run preload (OpenBSD ping.c 1.8)
3) Don't print all replies unless verbose and root (from idea in
   OpenBSD ping.c 1.10 and 1.11) to avoid leaking information available
   only to root.
4) Remove unused h: from option string to getopt.
5) Make the compiler happy with exit(0) (Lite-2?)

Reviewed by: Dan Cross <tenser@spitfire.ecsel.psu.edu>

Good candidate for 2.2 and 2.1 (as are many of the 1.17 changes).
1997-03-02 06:32:42 +00:00
wollman
17f6cabecc Make ping -Wall clean (except for one warning).
Do a better job of argument parsing.
Don't permit ping -f to a multicast address (very antisocial).
Don't permit -L, -I, -T options with unicast addresses.
Ensure that we ask for only AF_INET addresses (should close PR#2584).
Return <sysexits.h> error codes for failures.  Document this.
Fix man page to identify the author and put sections in correct order.
1997-03-01 20:19:18 +00:00