2
* Michal Kochanowicz <michal@michal.waw.pl> typos in tracepath.8
3
* Michael Wardle <michael.wardle@adacel.com>: undo silly change of ss000305
4
(printing rtt in some funny units). Michael noticed that "sec" is not
5
standard abbreviation for time units (bullshit, of course), but real concern
6
is that it is more difficult to interpret with a neglibible improvement
7
to appearance. So, do this as expected: in "ms".
8
* Documentation. Wow! I did it. man pages are disassembled to docbook,
9
audited wrt real state, edited... and promised to be maintained
10
in sync with the state of utilities.
13
* Utz Bacher <utz.bacher@de.ibm.com> Bitops in ping6 were wrong
14
on bigendian machines. Wow, luckily I forgot to acknowledge that patch
15
of 010805 which has gotten rid of kernel bitops and did this so wrongly.
16
* Michael Bakunin <bakunin@maphiasoft.org> (:-))
17
found mud in tftpd.c, it will crash when directory supplied in argument
18
is longer ~512 symbols.
19
* Alexandr D. Kanevskiy <kad@blackcatlinux.com>: buffer overflow
20
in clockdiff. Very stupid one, the overflowed buffer even was not used. :-)
21
* Alexandr D. Kanevskiy <kad@blackcatlinux.com>: shit! Code recognizing
22
kernels with broken IP_RECVERR for raw sockets depended on race
23
and accused even good kernel of being buggy. :-)
26
* Stepan Koltsov <yozh@mx1.ru>, tracepath/tracepth6 segfaulted when
28
* Alexandr D. Kanevskiy <kad@blackcatlinux.com>: arping printed
29
"permission denied" instead of showing help page to non-superuser.
32
* Alexandr D. Kanevskiy <kad@blackcatlinux.com>: ping compiled
33
for linux-2.4 forgot to send the second packet, when used with linux-2.2
34
* Chris Evans <chris@scary.beasts.org>: buffer overflow in traceroute6.
35
datalen was messed: counting header in half of places.
36
Funny, looking into LBL traceroute, it is even worse :-)
37
* Alexandr D. Kanevskiy <kad@blackcatlinux.com>: relayed patches
38
by Solar_Diz. Only missing description of option -q is accepted.
39
* <ipatel@wilnetonline.net> ping6 printed wrong mtu.
40
* Alexandr D. Kanevskiy <kad@blackcatlinux.com>: -Werror is removed.
41
Newer gcc are buggy and generates some wrong warnings about
42
uninitalized variables, which are evidently initialized.
45
* Some news from Pekka Savola <pekkas@netcore.fi> around setting tos bits.
46
* arping: broadcast-only mode by Ard van Breemen <ard@telegraafnet.nl>
47
* ping6/traceroute6: parse ICMP errors with extension headers (me)
48
traceroute6 works with size > mtu now. Nice.
49
* ping: Erik Quanstrom <quanstro@clark.net>. Serious patch.
50
ping interval timer was not very broken, but very unintelligible.
51
Though I remade the code to use leaky bucket logic, which
52
is the most transparent one. Anyway, contribution by Eric is
53
the most important one since the previous release.
54
Short theory of operation: option -i (interval) sets rate r=1/interval pps,
55
option -l (preload) sets burst size of l packets. So, ping sends
56
at most r*t+l packets for an arbitrary interval t.
57
Default values: l=1 and for non-flood case: r=1pps, for flood r=infinity.
58
Nice? Exact algorithm is:
60
Let N(t) be l/r=l*i initially and N(t) grow continuously with time as:
62
N(t+delta) = min{l*i, N(t) + delta}
64
Packet can be transmitted only at the time t_* when 1/r=i <= N(t_*)
65
and in this case N(t) jumps:
67
N(t_* + 0) = N(t_* - 0) - i.
69
When interval is zero, algo degenerates allowing to send any amount
70
of messages. In this case we modify it using l as limit on amount
71
of unanswered requests and waiting for 10msec, when something is not
72
answered. Note that the last thing (10msec) is just to be compatible with
73
BSD manual pages. BSD ping is simply not able to avoid delay technically,
76
In result we got some new facilities:
77
* "-f -l 100" becomes very aggressive, in fact on good link
78
it holds permanently 100 packets in flight, which is very different
79
of earlier bevaviour (one packet in flight).
80
* -f and -i are not incompatible more. In fact, "-f -i 1" is equivalent
81
to plain ping, only output is different (dotted). Essentially,
82
change of output format is the only effect. "ping -i 0" is flood
83
printing output in normal format.
85
Moved some parts of code to ping_common.c. Common part is not fully
88
* ping: Ian Lynagh <igloo@earth.li>, larger and dynamic dup detector.
89
Also, Ian submitted two large patches, one fixing formatting, another
90
doing something with signedness/longness. Not now...
91
Later note: found not working. x + 7 / 8 :-). Sorry... dubious, withdrawn.
92
size of table increased to maximal value instead (8K of memory,
94
* tftpd: an old misprint. left@sbor.spb.su (Igor A. Lefterov)
95
* clockdiff: do not fail, if reversed resolution failed.
96
Tommy Lacroix <tommyl@zeroknowledge.com>
97
* ping: audible ping by Patrik Schilt <patrik@bnc.ch>
98
Patrick's option renamed to -a to align to freebsd.
99
* ping: react to device queue overflows using IP_RECVERR. me.
100
* ping: option -S allows to change sndbuf
101
* rarpd is moved from separate package here (people asked)
102
* ping6: kernel style bitops are not used more.
103
* Option -A to adapt to network rtt.
104
* Use BPF, when multiple pings are detected.
107
* ping is able to select TOS. By Pekka Savola <pekkas@netcore.fi>
108
* tracepath* DNS names. By Pawel Krawczyk <kravietz@ceti.com.pl> and
109
Arkadiusz Miskiewicz <misiek@pld.org.pl>
110
* ping6 is expected to be compiled with linux-2.2.
113
* RH bugid#16677: segfault, when ping is used by root and size
114
is large enough. Fix is to allow oversize by root (it is necessary
115
to check kernel side), but clamp it at some safe value.
118
* More bug fixes from Chris Evans <chris@ferret.lmh.ox.ac.uk>
119
- do not trust h_length returned by system resolver.
120
This value is meaningless in any case.
121
- ping: buffer overflow in fill()!!! Disgraceful bug.
123
* ping: allow not-priviledged users to use broadcasts. It was paranoia.
124
Multicasts were allowed. 8)
125
* ping: but force broadcasts&multicasts not to fragment. BSD does
126
not allow to do this to anyone, we still allow this for superuser.
127
* Option -M to control path mtu discovery.
130
* By Pekka Savola <pekkas@netcore.fi>
131
- SIOCGSTAMP/SO_TIMESTAMP are sensitive to bug in kernel.
132
When get_fast_time != gettimeofday (f.e. timestampless x86),
133
returned stamp can be out of sync with gettimeofday.
134
Workaround is not to use SIOCGSTAMP/SO_TIMESTAMP on such systems.
136
- compiles under rh-7.0
137
* Chris Evans <chris@ferret.lmh.ox.ac.uk>
138
- ping: possible buffer overflow in pr_addr().
141
* Sorry. I have lost all the CVS with changes made since 000418.
142
If someone sent me a patch after this date, please, resubmit.
143
Restored from the last backup and mailboxes:
145
* ping*, SO_TIMESTAMP support.
146
* ping*, allow zero data length (reported by Damjan Lango <damjan.lango@hermes.si>)
147
* iputils man and help updates. Pekka Savola <Pekka.Savola@netcore.fi>
148
* ping.8, fix to ping man page. By Dadid Eisner <cradle@glue.umd.edu>
149
* ping prints addresses in numeric, if destination is numeric.
150
Proposed by Tim Waugh <twaugh@meme.surrey.redhat.com>
153
* ping: strncpy bug <typo@inferno.tusculum.edu>
154
* arping: improvements by Charles Howes <croot@micro-logistics.com>
155
- a feature to arping: quit as soon as a reply is received.
160
* llsqrt() was buggy again!
161
(noticed by Sam Farin <sfarin@ratol.fi>)
164
* tracepath*, "NURDUnet-gw" bug workaround.
165
(noticed by Vitaly E.Lavrov <lve@aanet.ru>)
166
* tracepath*, handle case of routers initializing rtt to 128.
167
Vitaly E.Lavrov <lve@aanet.ru>
168
* shadowed icmp_sock in ping6. James Morris <jmorris@@intercode.com.au>
169
* Bug in ping -f, introduced with SO_RCVTIMEO. me.
170
* llsqrt() (ping, ping6) was wrong yet. me.
173
* Print mean deviation of RTT in ping/ping6.
174
* Use SIOCGSTAMP in ping/ping6. Old behaviour calculating
175
true user-to-user latency is restored with option -U.
176
Reason for this stupid change is mainly political; people
177
wonder why freebsd has twice less latency on loopback.
178
If to follow along this line, we have to print rtt equal to 0. 8)
179
[ LATER NOTE: actually, the change is _right_ without any doubts.
180
Ping has another bug: nameresolver is blocking, so that
181
when it dies not respond, ping shows evenly increasing by 1 sec
182
RTT. It is very confusing (look through linux-kernel maillists
183
to count number of people, who were cheated by misconfigured dns). ]
184
* Use SO_RCVTIMEO instead of poll() with ping/ping6 -f.
185
* Added -V option to arping/ping/ping6/traceroute6/rdisc
186
to print snapshot number.
189
* rdisc: ugly bug in getting interface list. me.
190
* ping/ping6: ping -i N, N>=3 did not work. Jeff Jonson <jbj@redhat.com>
191
* ping/ping6: microsecond rtt measurements. me.
194
* ping/ping6: non-zero exit code even without -w.
197
* Option "-i" to ping/ping6 takes fractional time now, so that
198
"ping -i 0.3 xxx" pings each 300 msec. The idea is by
199
Marc Boucher <marc@mbsi.ca>
200
* alpha/glibc-2.1 alignment problems in ping are fixed (struct timeval
201
was wrongly aligned).
204
* ping/ping6 worked only with kernels 2.3.15+ in 990824.
207
* tftpd is added. It uses MSG_CONFIRM to confirm arp entries.
208
* ping6: workaround for bug in some egcs versions.
211
* ping: output buffer was too small for full sized ping.
212
* ping: silly restriction on ping size is removed.
215
* short man pages (Oleg M. Shumsky <oms@cp.tomsk.su>)
216
* ping6: get and print hop limit of reply packets (ME)
217
* rdisc deletes routes before exit with -TERM
218
* ping/ping6: option -w TIMEOUT
219
* arping: exit with error, if received no replies in normal
220
(not DAD and not unsilicited ARP) mode.