summaryrefslogtreecommitdiffstats
path: root/sbin/ping/ping.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove 'register' keyword.obrien2002-03-201-13/+13
| | | | | | 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?)
* Use network byte order for the ICMP sequence number. This is onlyfenner2002-02-271-6/+8
| | | | | significant when monitoring packets on another system, since otherwise the ICMP sequence number is only used by the ping client.
* Fixed two bugs with the "-l preload" option:ru2002-01-141-5/+9
| | | | | | | - first ping after a preload was sent undelayed - we could send more than -c packets in preload PR: bin/32354
* The -A option (beep when packets are dropped) didn't work quiteiedowse2001-09-251-2/+6
| | | | | | | | | | | | | 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
* Ian Dowse writes:mjacob2001-07-071-16/+7
| | | | | | | | | | | 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
* Fix unaligned access faults on alpha.mjacob2001-07-071-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Modify ping so that it increases the send socket buffer size if therwatson2001-06-301-0/+5
| | | | | | | | | 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
* Add a -A option to ping which beeps when packets are lost.phk2001-05-241-2/+10
| | | | | PR: 11818 Submitted by: Marc Evans marc@destek.net
* Add new option -m which allows the user to set IP TTL.ru2001-03-091-12/+28
|
* Format string paranoiakris2000-11-191-2/+2
|
* Use CMSG_LEN() to compute ping SCM_TIMESTAMP cmsg_len.shin2000-03-141-1/+1
| | | | | Without this, cmsg_len size should be smaller than necessary on alpha. (Though, no obvious error was seen on ping time value on beast.)
* CMSG_XXX macros alignment fixes to follow RFC2292.shin2000-03-031-1/+1
| | | | | | | Approved by: jkh Submitted by: Partly from tech@openbsd Reviewed by: itojun
* ping -S option was missing from IPsec merge, so enable it again.shin2000-02-081-2/+2
| | | | | | Approved by: jkh Submitted by: Matthew Reimer <mreimer@vpop.net>
* Brucify:billf2000-01-201-8/+15
| | | | | | | | | 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
* Add '-t X' which times out after pinging for X seconds.billf2000-01-141-4/+15
| | | | Submitted by: adrian
* libipsec and IPsec related apps. (and some KAME related man pages)shin2000-01-061-3/+68
| | | | | Reviewed by: freebsd-arch, cvs-committers Obtained from: KAME project
* Make last commit bde-compliant:pb1999-11-181-8/+9
| | | | | | - correct indentation - change data types for consistency with the rest of ping.c - create new variable separate from "answer" for clarity
* Fix aliasing bug causing in_cksum() to fail on odd packet sizespb1999-11-151-5/+9
| | | | | | | due to compiler optimization. PR: bin/13292 Suggested by: wollman
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Make flood ping flood again. It hasn't worked since 2.2.6. Make the "-l"mckay1999-05-071-4/+6
| | | | | | option work as described in the manual, not as another flood ping variant. Once discussed to death with: bde
* More egcs warning fixes:imp1999-04-251-2/+3
| | | | | | | | | | | 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
* Allow PINGing from any address on multihomed hostsimp1999-01-061-11/+44
| | | | | | | | | 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
* Remove -c restrictions from previous commit.des1998-08-261-13/+1
|
* (well tested at BEST): -i option can now take FP values (e.g. -i 0.1),dillon1998-08-261-11/+38
| | | | | | | 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.
* Correct use of .Nm. Remove unused #includes. Use warn(). cosmetic in usage()charnier1998-07-151-20/+13
| | | | | string. Translate 0 sec 1000000 usec to 1 sec 0 usec.
* Fix an alignment problem on alpha by doing a bytewise copy.jb1998-06-061-3/+6
|
* Use select() timeouts instead of SIGALRM to schedule packet transmission.fenner1998-05-251-81/+104
| | | | | | | | | | 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
* Revert the previous fix. As it turns out Warner Losh issteve1998-05-251-21/+9
| | | | working a better fix.
* Attempt to stop another DoS attack related to ping flooding.steve1998-05-251-9/+21
| | | | | PR: 6649 Submitted by: Jason Young <doogie@forbidden-donut.anet-stl.com>
* When a timeval is stored at the beginning of icmp_data, the fieldsjb1998-05-161-14/+27
| | | | | | | | | | | 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.
* If ping write fails with short packet count, thephk1998-04-151-2/+2
| | | | | | | error message prints the two numbers backwards. PR: 6313 Reviewed by: phk Submitted by: Archie Cobbs
* Add aback in a line a accidentally killed in my last commit.imp1998-04-021-1/+2
| | | | Submitted by: Bill Fenner
* Make this compile (and seemingly work).eivind1998-04-021-2/+2
|
* A fairly rare possible buffer overflow:imp1998-04-011-4/+13
| | | | | Theo fixed this and tqbf reported it Obtained from: OpenBSD
* Minor style nit noticed by bde.imp1997-12-241-2/+2
|
* Add an ntohs() and format an IP address with inet_ntoa() whenfenner1997-08-111-3/+3
| | | | | | | printing the details of a received ICMP packet. PR: bin/3766 Submitted by: denny1@home.com (Denton Gentry)
* don't lose track of how many packets we've sentjulian1997-08-071-3/+3
| | | | | | 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..
* Cleaned up revisions 1.22 and 1.23.bde1997-07-201-21/+24
| | | | | Fixed minor bugs in revisions 1.12 and 1.23 (variables assigned to in signal handlers weren't declared as volatile).
* Calculate and print out the standard deviation of the round trip times.wollman1997-07-181-4/+12
| | | | | | | 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.
* Fix a problem introduced with a recent change that caused a hang withsef1997-07-131-10/+28
| | | | | | | | | 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
* don't count packets as being transmitted when we know that the sendto()julian1997-07-091-2/+4
| | | | failed (e.g. ENOBUFS)
* ping called printf() from a signal handler..julian1997-07-091-5/+26
| | | | | | | | | | 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().
* Fix typo introduced in 1.17.imp1997-03-041-2/+2
| | | | Submitted by: "Philippe Charnier" <charnier@xp11.frmug.org>
* Check the size of the IP address reutrned from gethostbyname2, per PRimp1997-03-031-1/+3
| | | | | | 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.
* 1) Minor nits in the usage message from bde. I took out the hard tabs andimp1997-03-021-3/+5
| | | | | | | | | 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
* 1) Fix usage to match convention and manual. Fix manual to match usage.imp1997-03-021-6/+17
| | | | | | | | | | | | | 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).
* Make ping -Wall clean (except for one warning).wollman1997-03-011-161/+183
| | | | | | | | | 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.
* Reviewed by: Gary Jennejohn <gj@freebsd.org>danny1997-02-081-2/+8
| | | | | | | Submitted by: Bruce Murphy <packrat@iinet.net.au> Add '-a' audible flag, so terminal will beep upon receipt of a reply packet. Useful for debugging ethernet runs, among other things.
* Add multicast options -I (source interface), -T (set ttl), -L (no loopback).fenner1996-12-151-12/+61
| | | | | | | They were all lowercase in the original, but our ping already uses -i and -l so I made them all uppercase. Obtained from: Multicast release 3.5
* Cleaned up recent SIGINFO changes.bde1996-12-101-24/+19
| | | | | | | | | | | | Simplified average calculations. This also fixes potential overflow errors and minor rounding inconsistencies (always round to nearest now). Don't lose more SIGINFOs than necessary. Print \r at the start of the status message. This clears the dots that are sometimes left by ping -f. Reviewed by: sef
OpenPOWER on IntegriCloud