Ditch the sysvinit stuff
[profile/ivi/iputils.git] / RELNOTES
1 [s20101006]
2
3 Chris Caputo (1):
4       ping,ping6: avoid gethostbyaddr during ping flood.
5
6 Paul Martin (1):
7       arping: Set correct broadcast address.
8
9 YOSHIFUJI Hideaki (4):
10       tracepath: Fix some small typos in tracepath.sgml.
11       ping: Fix resource consumption triggered by specially crafted ICMP Echo Reply (CVE-2010-2529)
12       Makefile: migrate main machine from beatrice to takos.
13       Makefile: Use newer git subcommand style instead of git-subcommand.
14
15
16 [s20100418]
17
18 YOSHIFUJI Hideaki (28):
19       Merge branch 'timestamp'
20       Merge branch 'miscommit-20100210'
21       ping6: Use IPV6_TCLASS to set outgoing traffic class if available.
22       ping: Make build_echo(), gather_statistics() more generic.
23       ping6: Experimental support for Node Information Queries (RFC4620).
24       ping: simplify usage hint.
25       ping: Rename constant names
26       Extend -N option for NI Query options.
27       ping6: Make length-check qtype-specific.
28       ping6: Remove too many spaces between names.
29       ping6: ping6_niquery.h needs asm/byteorder.h.
30       ping6: Support Qtypes for IPv6/IPv4 Addresses.
31       ping6: Split pr_niquery_reply().
32       ping6: Handle ICMPv6 code in NI Reply.
33       ping6: Add subject-ipv6 and subject-ipv4 NI sub-option for subject address.
34       ping6: Support subject name.
35       ping6: Free old memory when reassign pointers.
36       ping6: Always enable IPv6 Node Information Queries.
37       makefile: Do not always link libresolv and libcrypto.
38       ping,traceroute6,clockdiff: Enlarge hostname buffer.
39       ping6: do not allow too large packet size by -s option.
40       ping: needless space when printing usage.
41       rdisc: Fix typo in error message.
42       rdisc: Allow multiple addresses on one interface.
43       arping: Support link-layer type with larger link-layer address.
44       tracepath6: resolve target even if -n option is supplied.
45       tracepath,tracepath6: sync tracepath and tracepath6.
46       tracepath6: Make it more protocol independent.
47
48
49 [s20100214]
50
51 Jamal Hadi Salim (2):
52       ping: ping by mark
53       ping: ping by mark doc update
54
55 Jamie Le Tual (1):
56       ping: set un.echo.id to network byte order
57
58 YOSHIFUJI Hideaki (11):
59       [PING6,TRACEROUTE6]: Ignore error in setting IPV6_CHECKSUM socket option for ICMPv6 socket.
60       [PING6]: Use if_nametoindex() to convert ifname to ifindex.
61       [PING6]: Allow to specify source address with interface in a single -I option.
62       ping6: Try using IPV6_PKTINFO sticky option to specify outgoing interface.
63       rdisc: Use FOPEN_MAX if OPEN_MAX is undefined.
64       ping6: Fix source routing with source interface set.
65       ping,ping6: Don't print extra ', ' in finish().
66       tracepath: Fix documentation typo.
67       Use sysconf(_SC_OPEN_MAX) instead of OPEN_MAX.
68       ping,ping6: Add -D option to print timestamp.
69       Merge branch 'timestamp'
70
71
72 [s20071127]
73
74 John Heffner (6):
75       [iputils] tracepath: Add length flag to set initial MTU.
76       [iputils] tracepath: Add documentation for the -l flag.
77       [iputils] tracepath: Use PMTUDISC_PROBE mode if it exists.
78       [iputils] tracepath: Document -n flag.
79       [iputils] tracepath: Fix asymm messages.
80       [iputils] tracepath: Re-probe at same TTL after MTU reduction.
81
82 YOSHIFUJI Hideaki (8):
83       [DOC]: Delete duplicated lines in RELNOTES.
84       Fix white space errors.
85       [CLOCKDIFF,PING,RDISC,TRACEROUTE6]: Support uClibc.
86       [RARPD]: Fixed several signedness issues for char strings.
87       [PING]: Use inet_pton() instead of sscan().
88       [PING6]: Use IN6_IS_ADDR_xxx() macro.
89       [MAKEFILE]: Change authorized host to push snapshots.
90       [MAKEFILE]: Use git-archive instead of git-tar-tree.
91
92
93 [s20070202]
94
95 Mike Frysinger (2):
96       Use socklen_t in all the right places.
97       [IPG]: handle pktgen setup in newer kernels.
98
99 Mitsuru Chinen (2):
100       [CLOCKDIFF]: Fix compilation errors about labels at end of compound statements.
101       [PING6]: Use getaddrinfo() for the name resolution of intermediate nodes.
102
103 YOSHIFUJI Hideaki (9):
104       [MAKEFILE] Remove unused -I../include
105       [TRACEPATH] Print usage if we met incorrect option.
106       [PING6]: Fix compilation error with glibc-2.4 and later.
107       [PING6]: Use getaddrinfo() to allow scoped addresses
108       Merge branch 'miscommit-20060927'
109       [PING6]: Ensure not to reverse-lookup if target is numeric address.
110
111
112 [s20060512]
113
114 YOSHIFUJI Hideaki:
115       [BUILD] Build with standard headers.
116       [ARPING,PING6] Build fix for some old systems.
117
118
119 [s20060425]
120
121 YOSHIFUJI Hideaki:
122       [TRACEROUTE6] Fix ICMPv6 type printing with -v option
123       [TRACEROUTE6] Mark ICMPv6 messages as known
124       [DOC] Maintainer / Contact change
125       [PING6,TRACEPATH6,TRACEROUTE6] Define SOL_IPV6,SOL_ICMPV6 where needed
126       [TRACEROUTE6] Fix source/destination address with -v option
127       [PING6,TRACEPATH6,TRACEROUTE6] Use new RFC3542 advanced API if available
128       [RDISC] Use proper type for is_directly_connected()
129       [PING,PING6] Use proper type for printf()
130       [TRACEROUTE6] Fix inet_pton() error handling
131       [TRACEROUTE6] Use minimum format if 0 is specified for datalen
132       [TRACEROUTE6] Optimize datalen sanity checking code
133       [TRACEPATH6] Use getaddrinfo() to allow scoped addresses
134       [RDISC] Use strerror(errno) instead of sys_errlist[errno]
135       [PING,PING6] Avoid using __constant_htons() if it is really needed
136       [TRACEPATH6] Fix format for subseconds
137       [ARPING,CLOCKDIFF,PING,PING6,TRACEROUTE6] Check return value from setuid().
138       [PING,PING6] ensure to initialize msg.
139       [MAKEFILE] Make snapshot using git
140
141
142 [020927]
143 * arping.sgml, some options were forgotten.
144 * send seqno in network byte order. Me.
145 * Mads Martin Jørgensen <mmj@suse.de> Recursive citation:
146 "On request of Mads Martin Jørgensen <mmj@suse.de> I've added manpages
147 pregenerated from the Docbook sources. One could argue it is redundant
148 when the Docbook sources are also there, but the argument of not having
149 to install Docbook on a very small system to get the man pages was
150 convinving enough to me. To quote Mads Martin: "How would a system
151 be without a man page for ping?" 
152   As a chilidish revenge from my side enjoy with cyrillic date in these
153   man pages. :-)
154 * Ken Cox <jkc@redhat.com>. Bogus definition of SOCK_DRGAM&SOCK_STREAM on mips.
155 * Error returned from recvmsg() resulted in a bogus printout in traceroute6. Me.
156 * Use IPV6_CHECKSUM on icmp socket in traceroute6. Me.
157 * Noah L. Meyerhans <frodo@morgul.net> Fix to doc.
158 !* Noah L. Meyerhans <frodo@morgul.net> What is the problem with "long" triptime?
159 !  Reporter does not respond. _Malignantly_.
160 * Thomas 'Dent' Mirlacher <dent@cosy.sbg.ac.at> Ping did not exit sometimes!
161 * Add option -W to override default 10 second linger timeout. Me.
162 * Mads Martin Jørgensen <mmj@suse.de>: ping should not bind to autoselected
163   source address, it used to work when routing changes. Return classic
164   behaviour, option -B is added to enforce binding.
165 * Pekka Savola <pekkas@netcore.fi> Forgotten \n messing output of ping6.
166 * Noah L. Meyerhans <frodo@morgul.net> traceroute6 -q 1 did not work.
167 * Pekka Savola <pekkas@netcore.fi> various sizeof() cleanups in traceroute6.c
168 * "Dmitry V. Levin" <ldv@alt-linux.org> wrote:
169   > ping (as well as other utilities) may open raw socket with descriptor <=2;
170   > In case of suid-root, it can be used by malicious user to send data to
171   > this raw socket.
172   > 
173   > Yes, modern glibc and some kernels have workaround for it, but
174   > IMHO iputils shouldn't rely on this feature.
175   Taken into account, but no changes made.
176 * "Tilman Heinrich" <tilHeinrich@web.de> said some scripts are broken
177   when word "packet" disappeared from "100% packet loss". Despite of
178   the inarguable fact that such scripts are truly mad and deserve breaking
179   (sigh... exit codes are too smart concept for script writers, I guess),
180   I have to recognize removing this word carrying zero information
181   was not enough motivated. Returned.
182 * ping used to retry forever when seeing ENOBUFS/ENOMEM without explicitly
183   given deadline. Being logically correct it is bad in practice f.e. when
184   pinging buggy device which locked up with some packets in queue.
185   So, retry for a finite time... let is be lingertime. Fair? Me.
186 * Two "messages" are sent to rpm maintainers to make their wrong patches
187   failed.
188 * Fix from RH iputils-20001007-deadline.patch. It was lost in the latest
189   rpms btw.
190 * Dax Kelson <dax@gurulabs.com>: added _unsupported_ option to comppile
191   rdisc_srv.
192
193 [020124]
194 * Michal Kochanowicz <michal@michal.waw.pl> typos in tracepath.8
195 * Michael Wardle <michael.wardle@adacel.com>: undo silly change of ss000305
196   (printing rtt in some funny units). Michael noticed that "sec" is not
197   standard abbreviation for time units (bullshit, of course), but real concern
198   is that it is more difficult to interpret with a neglibible improvement
199   to appearance. So, do this as expected: in "ms".
200 * Documentation. Wow! I did it. man pages are disassembled to docbook,
201   audited wrt real state, edited... and promised to be maintained
202   in sync with the state of utilities.
203
204 [011202]
205 * Utz Bacher <utz.bacher@de.ibm.com> Bitops in ping6 were wrong
206   on bigendian machines. Wow, luckily I forgot to acknowledge that patch
207   of 010805 which has gotten rid of kernel bitops and did this so wrongly.
208 * Michael Bakunin <bakunin@maphiasoft.org> (:-))
209   found mud in tftpd.c, it will crash when directory supplied in argument
210   is longer ~512 symbols.
211 * Alexandr D. Kanevskiy <kad@blackcatlinux.com>: buffer overflow
212   in clockdiff. Very stupid one, the overflowed buffer even was not used. :-)
213 * Alexandr D. Kanevskiy <kad@blackcatlinux.com>: shit! Code recognizing
214   kernels with broken IP_RECVERR for raw sockets depended on race
215   and accused even good kernel of being buggy. :-)
216
217 [011002]
218 * Stepan Koltsov <yozh@mx1.ru>, tracepath/tracepth6 segfaulted when
219   used without address.
220 * Alexandr D. Kanevskiy <kad@blackcatlinux.com>: arping printed
221   "permission denied" instead of showing help page to non-superuser.
222
223 [010824]
224 * Alexandr D. Kanevskiy <kad@blackcatlinux.com>: ping compiled
225   for linux-2.4 forgot to send the second packet, when used with linux-2.2
226 * Chris Evans <chris@scary.beasts.org>: buffer overflow in traceroute6.
227   datalen was messed: counting header in half of places.
228   Funny, looking into LBL traceroute, it is even worse :-)
229 * Alexandr D. Kanevskiy <kad@blackcatlinux.com>: relayed patches
230   by Solar_Diz. Only missing description of option -q is accepted.
231 * <ipatel@wilnetonline.net> ping6 printed wrong mtu.
232 * Alexandr D. Kanevskiy <kad@blackcatlinux.com>: -Werror is removed.
233   Newer gcc are buggy and generates some wrong warnings about
234   uninitalized variables, which are evidently initialized.
235
236 [010805]
237 * Some news from Pekka Savola <pekkas@netcore.fi> around setting tos bits.
238 * arping: broadcast-only mode by Ard van Breemen <ard@telegraafnet.nl>
239 * ping6/traceroute6: parse ICMP errors with extension headers (me)
240   traceroute6 works with size > mtu now. Nice.
241 * ping: Erik Quanstrom <quanstro@clark.net>. Serious patch.
242   ping interval timer was not very broken, but very unintelligible.
243   Though I remade the code to use leaky bucket logic, which
244   is the most transparent one. Anyway, contribution by Eric is
245   the most important one since the previous release.
246   Short theory of operation: option -i (interval) sets rate r=1/interval pps,
247   option -l (preload) sets burst size of l packets. So, ping sends
248   at most r*t+l packets for an arbitrary interval t.
249   Default values: l=1 and for non-flood case: r=1pps, for flood r=infinity.
250   Nice? Exact algorithm is:
251
252   Let N(t) be l/r=l*i initially and N(t) grow continuously with time as:
253
254         N(t+delta) = min{l*i, N(t) + delta}
255
256   Packet can be transmitted only at the time t_* when 1/r=i <= N(t_*)
257   and in this case N(t) jumps:
258
259         N(t_* + 0) = N(t_* - 0) - i.
260
261   When interval is zero, algo degenerates allowing to send any amount
262   of messages. In this case we modify it using l as limit on amount
263   of unanswered requests and waiting for 10msec, when something is not
264   answered. Note that the last thing (10msec) is just to be compatible with
265   BSD manual pages. BSD ping is simply not able to avoid delay technically,
266   we are able now.
267
268   In result we got some new facilities:
269   * "-f -l 100" becomes very aggressive, in fact on good link
270     it holds permanently 100 packets in flight, which is very different
271     of earlier bevaviour (one packet in flight).
272   * -f and -i are not incompatible more. In fact, "-f -i 1" is equivalent
273     to plain ping, only output is different (dotted). Essentially,
274     change of output format is the only effect. "ping -i 0" is flood
275     printing output in normal format.
276
277   Moved some parts of code to ping_common.c. Common part is not fully
278   trivial now. :-)
279
280 * ping: Ian Lynagh <igloo@earth.li>, larger and dynamic dup detector.
281   Also, Ian submitted two large patches, one fixing formatting, another
282   doing something with signedness/longness. Not now...
283   Later note: found not working. x + 7 / 8 :-). Sorry... dubious, withdrawn.
284   size of table increased to maximal value instead (8K of memory,
285   not a big deal).
286 * tftpd: an old misprint. left@sbor.spb.su (Igor A. Lefterov)
287 * clockdiff: do not fail, if reversed resolution failed.
288   Tommy Lacroix <tommyl@zeroknowledge.com>
289 * ping: audible ping by Patrik Schilt <patrik@bnc.ch>
290   Patrick's option renamed to -a to align to freebsd.
291 * ping: react to device queue overflows using IP_RECVERR. me.
292 * ping: option -S allows to change sndbuf 
293 * rarpd is moved from separate package here (people asked)
294 * ping6: kernel style bitops are not used more.
295 * Option -A to adapt to network rtt.
296 * Use BPF, when multiple pings are detected.
297
298 [001110]
299 * ping is able to select TOS. By Pekka Savola <pekkas@netcore.fi>
300 * tracepath* DNS names. By Pawel Krawczyk <kravietz@ceti.com.pl> and
301   Arkadiusz Miskiewicz <misiek@pld.org.pl>
302 * ping6 is expected to be compiled with linux-2.2.
303
304 [001011]
305 * RH bugid#16677: segfault, when ping is used by root and size
306   is large enough. Fix is to allow oversize by root (it is necessary
307   to check kernel side), but clamp it at some safe value.
308
309 [001010]
310 * More bug fixes from Chris Evans <chris@ferret.lmh.ox.ac.uk>
311   - do not trust h_length returned by system resolver.
312     This value is meaningless in any case.
313   - ping: buffer overflow in fill()!!! Disgraceful bug.
314
315 * ping: allow not-priviledged users to use broadcasts. It was paranoia.
316   Multicasts were allowed. 8)
317 * ping: but force broadcasts&multicasts not to fragment. BSD does
318   not allow to do this to anyone, we still allow this for superuser.
319 * Option -M to control path mtu discovery.
320
321 [001007]
322 * By Pekka Savola <pekkas@netcore.fi>
323   - SIOCGSTAMP/SO_TIMESTAMP are sensitive to bug in kernel.
324     When get_fast_time != gettimeofday (f.e. timestampless x86),
325     returned stamp can be out of sync with gettimeofday.
326     Workaround is not to use SIOCGSTAMP/SO_TIMESTAMP on such systems.
327   - fixes in man pages
328   - compiles under rh-7.0
329 * Chris Evans <chris@ferret.lmh.ox.ac.uk>
330   - ping: possible buffer overflow in pr_addr().
331
332 [000928]
333 * Sorry. I have lost all the CVS with changes made since 000418.
334   If someone sent me a patch after this date, please, resubmit.
335   Restored from the last backup and mailboxes:
336
337 * ping*, SO_TIMESTAMP support.
338 * ping*, allow zero data length (reported by Damjan Lango <damjan.lango@hermes.si>)
339 * iputils man and help updates. Pekka Savola <Pekka.Savola@netcore.fi>
340 * ping.8, fix to ping man page. By Dadid Eisner <cradle@glue.umd.edu>
341 * ping prints addresses in numeric, if destination is numeric.
342   Proposed by Tim Waugh <twaugh@meme.surrey.redhat.com>
343
344 New:
345 * ping: strncpy bug <typo@inferno.tusculum.edu>
346 * arping: improvements by Charles Howes <croot@micro-logistics.com>
347         - a feature to arping: quit as soon as a reply is received.
348         - default to eth0.
349         - spelling
350
351 [000418]
352 * llsqrt() was buggy again!
353        (noticed by Sam Farin <sfarin@ratol.fi>)
354
355 [000404]
356 * tracepath*, "NURDUnet-gw" bug workaround.
357         (noticed by Vitaly E.Lavrov <lve@aanet.ru>)
358 * tracepath*, handle case of routers initializing rtt to 128.
359         Vitaly E.Lavrov <lve@aanet.ru>
360 * shadowed icmp_sock in ping6. James Morris <jmorris@@intercode.com.au>
361 * Bug in ping -f, introduced with SO_RCVTIMEO. me.
362 * llsqrt() (ping, ping6) was wrong yet. me.
363
364 [000310]
365 * Print mean deviation of RTT in ping/ping6.
366 * Use SIOCGSTAMP in ping/ping6. Old behaviour calculating
367   true user-to-user latency is restored with option -U.
368   Reason for this stupid change is mainly political; people
369   wonder why freebsd has twice less latency on loopback.
370   If to follow along this line, we have to print rtt equal to 0. 8)
371   [ LATER NOTE: actually, the change is _right_ without any doubts.
372     Ping has another bug: nameresolver is blocking, so that
373     when it dies not respond, ping shows evenly increasing by 1 sec
374     RTT. It is very confusing (look through linux-kernel maillists
375     to count number of people, who were cheated by misconfigured dns). ]
376 * Use SO_RCVTIMEO instead of poll() with ping/ping6 -f.
377 * Added -V option to arping/ping/ping6/traceroute6/rdisc
378   to print snapshot number.
379
380 [000305]
381 * rdisc: ugly bug in getting interface list. me.
382 * ping/ping6: ping -i N, N>=3 did not work. Jeff Jonson <jbj@redhat.com>
383 * ping/ping6: microsecond rtt measurements. me.
384
385 [000120]
386 * ping/ping6: non-zero exit code even without -w.
387
388 [991024]
389 * Option "-i" to ping/ping6 takes fractional time now, so that
390   "ping -i 0.3 xxx" pings each 300 msec. The idea is by
391   Marc Boucher <marc@mbsi.ca>
392 * alpha/glibc-2.1 alignment problems in ping are fixed (struct timeval
393   was wrongly aligned).
394
395 [990915]
396 * ping/ping6 worked only with kernels 2.3.15+ in 990824.
397
398 [990824]
399 * tftpd is added. It uses MSG_CONFIRM to confirm arp entries.
400 * ping6: workaround for bug in some egcs versions.
401
402 [990610]
403 * ping: output buffer was too small for full sized ping.
404 * ping: silly restriction on ping size is removed.
405
406 [990530]
407 * short man pages (Oleg M. Shumsky <oms@cp.tomsk.su>)
408 * ping6: get and print hop limit of reply packets (ME)
409 * rdisc deletes routes before exit with -TERM
410 * ping/ping6: option -w TIMEOUT 
411 * arping: exit with error, if received no replies in normal
412   (not DAD and not unsilicited ARP) mode.
413