Home | History | Annotate | Download | only in iputils
      1 [s20121221]
      2 
      3 YOSHIFUJI Hideaki (14):
      4       ninfod: Use unsigned int for digest.
      5       ninfod: nanosleep(3) needs <time.h>.
      6       ninfod: Too many arguments for syslog(3)/fprintf(3) via DEBUG().
      7       ninfod: Fix several warnings on ununsed variables.
      8       ping6: Print unknown ICMP type.
      9       ping6: Fix flowlabel switch (-F option).
     10       arping: Fix sysfs decimal/hexadecimal parser for libsysfs support.
     11       ping6: Use GNU TLS by default.
     12       ninfod: Fix memory leakage in error path.
     13       ninfod: Fix off-by-one error to check possible programming error (again).
     14       ninfod: Do not expose freed buffer to caller.
     15       ping6: Ensure to initialize msghdr.
     16       ninfod: Support GNU TLS.
     17       ninfod: Allow printing usage without permission errors.
     18 
     19 
     20 [s20121207]
     21 
     22 YOSHIFUJI Hideaki (2):
     23       RELNOTES: Typos.
     24       ping,ping6: Check outgoing device only if specified.
     25 
     26 
     27 [s20121205]
     28 
     29 Jan Synacek (1):
     30       ping,tracepath doc: Fix missing end tags.
     31 
     32 YOSHIFUJI Hideaki (35):
     33       tracepath6: packet length option (-l) did not have any effect.
     34       tracepath,tracepath6: Fix pktlen message.
     35       tracepath,tracepath6: Use calloc(3) instead of using stack.
     36       tracepath6: Ignore families other than IPv4 and IPv6.
     37       ping6: Improve randomness of NI Nonce.
     38       tracepath,tracepath6 doc: Fix default pktlen.
     39       ping,rdisc: Optimize checksumming.
     40       makefile: Static link support for crypto, resolv, cap and sysfs.
     41       doc: Ajdust spaces around sqare brackets.
     42       ping,rdisc: Use macro to get odd byte when checksumming.
     43       ping6: Do not try to free memory pointed by uninitialized variable on error path.
     44       arping: Allow building without default interface.
     45       arping: No default interface by default.
     46       arping: Allow printing usage without permission errors.
     47       ping,ping6: Allow printing usage without permission errors.
     48       ping,ping6: Fix cap_t leakage.
     49       arping,ping,ping6: Do not ideologically check return value from cap_free,cap_{set,get}_flag().
     50       arping: Fix sysfs_class leakage on error path.
     51       arping: Some comments for new functions for finding devices support.
     52       arping: Typo in type declaration.
     53       makefile: Use call function for external libraries.
     54       makefile: Add more comments.
     55       arping: Ensure to fail if no appropriate device found with sysfs.
     56       arping: Enforce user to specify device (-I) if multiple devices found.
     57       Makefile: parameterize options for linking libraries.
     58       Makefile: Use shell function instead if backquotes.
     59       Makefile: Ensure to have same date when making snapshot.
     60       spec: Maintainer does not use ipsec.spec.
     61       spec: partially sync with fedora.
     62       Makefile: Bump date in iputils.spec as well.
     63       spec: Add exmple lines for suid-root installation
     64       spec: Sort changelog.
     65       ping: Exit on SO_BINDTODEVICE failure.
     66       ping: Warn if kernel has selected source address from other interface.
     67       ping: Clarify difference between -I device and -I addr.
     68 
     69 
     70 [s20121126]
     71 
     72 YOSHIFUJI Hideaki (5):
     73       tracepath: Repair tracepath without -p option.
     74       tracepath,tracepath6: -p option in usage.
     75       ping,ping6: Use MAX_DUP_CHK directly, not using mx_dup_chk variable.
     76       ping,ping6: Abstract received bitmap macros/definitions.
     77       ping,ping6: Use __u64 or __u32 for bitmap.
     78 
     79 
     80 [s20121125]
     81 
     82 YOSHIFUJI Hideaki (30):
     83       ping6: Use IN6_IS_ADDR_UNSPECIFIED() instead of our own helper function.
     84       ping6 doc: Explicitly describe ping6 is IPv6 version if ping.
     85       ping6: Deprecate source routing by default (RFC5095).
     86       ping6: Use RFC3542 functions and definition for source routing.
     87       ping6: Introduce niquery_is_enabled() for readability.
     88       arping doc: interface is optional (-I option).
     89       ping: Eliminate dirty hack to cope with ancient egcs bug.
     90       Makefile: Fix missing right parenthes in comment.
     91       arping: Fix build failure with USE_SYSFS=yes and/or WITHOUT_IFADDRS=yes
     92       arping: Unify source files.
     93       arping: Reorder functions and comment out unsued code.
     94       arping,ping,ping6,tracepath,traceroute6 Makefile: Support static link of libidn by USE_IDN=static.
     95       Makefile: Minimize statically linked libraries.
     96       ping6: Do not clear seq check array twice for NI.
     97       ping6: Use MD5_DIGEST_LENGTH instead of magic value 16.
     98       ping6: Introduce helper functions for nonce in NI.
     99       ping6: Introduce NI_NONCE_SIZE macro instead of magic value 8.
    100       ping6: Ensure to call srand() to get some randomness in NI Nonce.
    101       ping6: Generate different NI Nonce in each NI Query (Memory version).
    102       ping6: Generate different NI Nonce in each NI Query (MD5 version).
    103       ping6: Cache NI Nonce.
    104       ping6: Print 'sequence number' embedded in NI Nonce.
    105       ninfod: Do noy try to memcpy to self.
    106       ninfod Makefile: More precise dependencies.
    107       ninfod: Discard multicat packet outside linklocal scope.
    108       ninfod: Apply default policy to refuse queries from global addresses.
    109       ninfod: Normalize timespec for delay.
    110       ninfod: Fix double-free without pthreads.
    111       ninfod: Do not mix output from multiple threads.
    112       ninfod: Employ internal buffer in stderrlog() for common case.
    113 
    114 
    115 [s20121121]
    116 
    117 Jan Synacek (2):
    118       ping,ping6: Add newline to error message.
    119       ping: Don't free an unintialized value.
    120 
    121 YOSHIFUJI Hideaki (31):
    122       arping,clockdiff,ping,rarpd,rdisc,traceroute6 doc: s/CAP_NET_RAWIO/CAP_NET_RAW/.
    123       ping,ping6: Do not assume radix point is denoted by '.' (-i option).
    124       arping,ping,ping6,rdisc,traceroute6: Fix version string.
    125       makefile: Give -fno-strict-aliasing to compiler by default.
    126       ping6: Use SCOPE_DELIMITER.
    127       Makefile: Remove -lm from ADDLIB.
    128       rdisc_srv,Makefile: Fix build.
    129       rdisc_srv,Makefile: Build rdisc_srv with make all.
    130       arping: set_device_broadcast() does not need to store return value of sub-functions.
    131       arping,Makefile: Make default interface configurable.
    132       arping: Do not allow empty device name (-I option).
    133       arping: Introduce check_ifflags() helper function.
    134       arping: Introduce device structure to hold output device information.
    135       arping: ALlow no default interface and select one by getifaddrs().
    136       arping: Introduce 2nd (legacy) method to select interface by ioctls.
    137       arping,Makefile: Allow build without getifaddrs() with WITHOUT_IFADDRS=yes.
    138       Makefile: Use $< instead of $^ to complile C source code.
    139       ping,ping6: Reorder command-line options in alphabetical order.
    140       ping6: Show suboptions for Node Information Queries if -N suboption is invalid.
    141       ping,ping6 doc: Readability for TOS (-Q) option.
    142       rdisc: Missing new line after usage.
    143       rdisc: Make rdisc with responder support if configured.
    144       Makefile: distclean depends on clean.
    145       Makefile: Default to -O3.
    146       Makefile: Minimize options to gcc.
    147       Makefile: Add rule to build assembly files.
    148       arping,Makefile: 3rd legacy implementation to check network devices.
    149       arping: Less ifdefs.
    150       rdisc doc: Document -r, -p and -T options.
    151       ping6: NI Subjecet address did not work (-N subject-{ipv6,ipv4] suboptions).
    152       ping6: Ensure to detect subject type conflicts.
    153 
    154 
    155 [s20121114]
    156 
    157 Jan Synacek (2):
    158       clockdiff: remove unused variable
    159       ping: Wrap SO_BINDTODEVICE with the correct capability.
    160 
    161 YOSHIFUJI Hideaki (13):
    162       ping: IP_MULTICAST_IF does not need CAP_NET_RAW.
    163       ping6: Check ranges of flowlabel (-F option) and tclass (-Q option) arguments.
    164       ping6: Accept 0x-notation for flowlabel (-F option) and tclass (-Q option) arguments.
    165       ping,ping6: Manual update regarding -F, -Q and -N option.
    166       arping,ping,ping6: Defer exitting to allow users to see usage.
    167       arping,ping,ping6,ninfod: Change euid to uid (non-root) even if capabiliy is enabled.
    168       ninfod: Add configure.
    169       ninfod: libcap support to drop capabilities.
    170       ninfod: Add run as user (-u user) option.
    171       ninfod: Fix usage message.
    172       arping,clockdiff,rarpd,rdisc,tftpd: Change RFC source to tools.ietf.org.
    173       ninfod: Add ninfod(8) manpage.
    174       makefile: Add ninfod, distclean targets.
    175 
    176 
    177 [s20121112]
    178 
    179 Sergey Fionov (1):
    180       ping,ping6: Fallback to numeric addresses while exiting
    181 
    182 YOSHIFUJI Hideaki (18):
    183       ping,ping6: Rework capability support and Make sure -m and -I options work.
    184       ping,tracepath: Spelling fixes in manpages.
    185       ping,ping6: Fix integer overflow with large interval value (-i option).
    186       clockdiff: Make it work with large pid.
    187       ping,ping6: Make in_pr_addr volatile.
    188       arping: Do not quit too early with large deadline value (-w option).
    189       arping: Maintain minimum capabilities for SO_BINDTODEVICE(-I option).
    190       ping: Fix recorded route comparison.
    191       arping: Use getifaddrs() to get broadcast address.
    192       ping6: Fix typo in error message.
    193       ping6: Generate NI Group Address and Subject Name at once.
    194       ping,ping6: Unmask signals on start-up.
    195       arping: Build with USE_CAP=no.
    196       arping,ping,ping6,tracepath,tracepath6,traceroute6: Experimental IDN support.
    197       ping6: IDN support for the Subject Name in NI Query.
    198       tracepath,tracepath6: Introduce -p option for port.
    199       ping6: Add missing definitions/declarations for flowlabel management (-F option).
    200       makefile: Do not include merge commits in RELNOTES.
    201 
    202 
    203 [s20121106]
    204 
    205 YOSHIFUJI Hideaki (5):
    206       ninfod: Attatch configure and renew config.h.in.
    207       makefile: clean-up
    208       tracepath6: Print reason on getadrinfo() failure.
    209       ping,ping6: Fix hang with -f option.
    210       ping: Make sure to print C if checksum failed with -f option.
    211 
    212 
    213 [s20121011]
    214 
    215 Jan Synacek (2):
    216       ping,ping6: Defer the dropping if the "-m" is specified and correct capability is set.
    217       ping: Fix typo in echo reply
    218 
    219 Ole Bjorn Hessen (1):
    220       ping: report outstanding packets before sending next packet
    221 
    222 YOSHIFUJI Hideaki (32):
    223       ping,ping6: Add -D to synopsis.
    224       ping: More icmp code descriptions.
    225       ping,ping6: Hide ipg/ewma info without packets received.
    226       ping6: Remove unused variable.
    227       ping6: Help for -N suboptions.
    228       tracepath,tracepath6: Use argument type of int for field width specifier.
    229       clockdiff: Call nice() before changing effective uid.
    230       rdisc: Use fputs() instead of fprintf() to shut up gcc warning.
    231       rarpd: Check return value of chdir().
    232       makefile: Introduce new variable for capability support.
    233       ping,ping6: Check return value of write(2) for stdout.
    234       ping6,tracepath,tracepath6: Do not dereference type-punned pointer directly.
    235       Makefile: host changed from takos to pleiades.
    236       ping6: Provide enough buffer for dn_comp() and make NI Query with Name subject work.
    237       ping6: Consolidate error path of niquery_option_subject_name_handler().
    238       ninfod: Node Information Query (RFC4620) daemon from USAGI Project.
    239       ninfod: struct in6_pktinfo requires -D_GNU_SOURCE.
    240       ninfod: Use %zu format string for size_t variable.
    241       ninfod: Add missing entry for ENABLE_SUPTYPES in config.h.in.
    242       ninfod: Support newer environment supporting RFC3542.
    243       ninfod: Fix format string for string returned from strerror(3).
    244       ninfod: Check return value of fscanf(3).
    245       ninfod: Fix off-by-one error to check possible programming error.
    246       ninfod: Add datarootdir.
    247       ninfod: Use __func__ instead of __FUNCTION__.
    248       ninfod: Introduce ARRAY_SIZE macro for counting number of elements in an array.
    249       ninfod: Delete ninfod.sh by make distclean, not by make clean.
    250       ping6: Do not try to use result buffer when dn_comp(3) failed.
    251       ping,ping6: ifdef guard for inline function for capability support and fix build with USE_CAP=no.
    252       makefile: Do not use "-llib" dependency.
    253       arping: build without sysfs support (USE_SYSFS=no).
    254 
    255 ngel Gonzlez (1):
    256       iputils: Add capability dropping
    257 
    258 
    259 [s20101006]
    260 
    261 Chris Caputo (1):
    262       ping,ping6: avoid gethostbyaddr during ping flood.
    263 
    264 Paul Martin (1):
    265       arping: Set correct broadcast address.
    266 
    267 YOSHIFUJI Hideaki (4):
    268       tracepath: Fix some small typos in tracepath.sgml.
    269       ping: Fix resource consumption triggered by specially crafted ICMP Echo Reply (CVE-2010-2529)
    270       Makefile: migrate main machine from beatrice to takos.
    271       Makefile: Use newer git subcommand style instead of git-subcommand.
    272 
    273 
    274 [s20100418]
    275 
    276 YOSHIFUJI Hideaki (28):
    277       ping6: Use IPV6_TCLASS to set outgoing traffic class if available.
    278       ping: Make build_echo(), gather_statistics() more generic.
    279       ping6: Experimental support for Node Information Queries (RFC4620).
    280       ping: simplify usage hint.
    281       ping: Rename constant names
    282       Extend -N option for NI Query options.
    283       ping6: Make length-check qtype-specific.
    284       ping6: Remove too many spaces between names.
    285       ping6: ping6_niquery.h needs asm/byteorder.h.
    286       ping6: Support Qtypes for IPv6/IPv4 Addresses.
    287       ping6: Split pr_niquery_reply().
    288       ping6: Handle ICMPv6 code in NI Reply.
    289       ping6: Add subject-ipv6 and subject-ipv4 NI sub-option for subject address.
    290       ping6: Support subject name.
    291       ping6: Free old memory when reassign pointers.
    292       ping6: Always enable IPv6 Node Information Queries.
    293       makefile: Do not always link libresolv and libcrypto.
    294       ping,traceroute6,clockdiff: Enlarge hostname buffer.
    295       ping6: do not allow too large packet size by -s option.
    296       ping: needless space when printing usage.
    297       rdisc: Fix typo in error message.
    298       rdisc: Allow multiple addresses on one interface.
    299       arping: Support link-layer type with larger link-layer address.
    300       tracepath6: resolve target even if -n option is supplied.
    301       tracepath,tracepath6: sync tracepath and tracepath6.
    302       tracepath6: Make it more protocol independent.
    303 
    304 
    305 [s20100214]
    306 
    307 Jamal Hadi Salim (2):
    308       ping: ping by mark
    309       ping: ping by mark doc update
    310 
    311 Jamie Le Tual (1):
    312       ping: set un.echo.id to network byte order
    313 
    314 YOSHIFUJI Hideaki (11):
    315       [PING6,TRACEROUTE6]: Ignore error in setting IPV6_CHECKSUM socket option for ICMPv6 socket.
    316       [PING6]: Use if_nametoindex() to convert ifname to ifindex.
    317       [PING6]: Allow to specify source address with interface in a single -I option.
    318       ping6: Try using IPV6_PKTINFO sticky option to specify outgoing interface.
    319       rdisc: Use FOPEN_MAX if OPEN_MAX is undefined.
    320       ping6: Fix source routing with source interface set.
    321       ping,ping6: Don't print extra ', ' in finish().
    322       tracepath: Fix documentation typo.
    323       Use sysconf(_SC_OPEN_MAX) instead of OPEN_MAX.
    324       ping,ping6: Add -D option to print timestamp.
    325 
    326 
    327 [s20071127]
    328 
    329 John Heffner (6):
    330       [iputils] tracepath: Add length flag to set initial MTU.
    331       [iputils] tracepath: Add documentation for the -l flag.
    332       [iputils] tracepath: Use PMTUDISC_PROBE mode if it exists.
    333       [iputils] tracepath: Document -n flag.
    334       [iputils] tracepath: Fix asymm messages.
    335       [iputils] tracepath: Re-probe at same TTL after MTU reduction.
    336 
    337 YOSHIFUJI Hideaki (8):
    338       [DOC]: Delete duplicated lines in RELNOTES.
    339       Fix white space errors.
    340       [CLOCKDIFF,PING,RDISC,TRACEROUTE6]: Support uClibc.
    341       [RARPD]: Fixed several signedness issues for char strings.
    342       [PING]: Use inet_pton() instead of sscan().
    343       [PING6]: Use IN6_IS_ADDR_xxx() macro.
    344       [MAKEFILE]: Change authorized host to push snapshots.
    345       [MAKEFILE]: Use git-archive instead of git-tar-tree.
    346 
    347 
    348 [s20070202]
    349 
    350 Mike Frysinger (2):
    351       Use socklen_t in all the right places.
    352       [IPG]: handle pktgen setup in newer kernels.
    353 
    354 Mitsuru Chinen (2):
    355       [CLOCKDIFF]: Fix compilation errors about labels at end of compound statements.
    356       [PING6]: Use getaddrinfo() for the name resolution of intermediate nodes.
    357 
    358 YOSHIFUJI Hideaki (9):
    359       [MAKEFILE] Remove unused -I../include
    360       [TRACEPATH] Print usage if we met incorrect option.
    361       [PING6]: Fix compilation error with glibc-2.4 and later.
    362       [PING6]: Use getaddrinfo() to allow scoped addresses
    363       [PING6]: Ensure not to reverse-lookup if target is numeric address.
    364 
    365 
    366 [s20060512]
    367 
    368 YOSHIFUJI Hideaki:
    369       [BUILD] Build with standard headers.
    370       [ARPING,PING6] Build fix for some old systems.
    371 
    372 
    373 [s20060425]
    374 
    375 YOSHIFUJI Hideaki:
    376       [TRACEROUTE6] Fix ICMPv6 type printing with -v option
    377       [TRACEROUTE6] Mark ICMPv6 messages as known
    378       [DOC] Maintainer / Contact change
    379       [PING6,TRACEPATH6,TRACEROUTE6] Define SOL_IPV6,SOL_ICMPV6 where needed
    380       [TRACEROUTE6] Fix source/destination address with -v option
    381       [PING6,TRACEPATH6,TRACEROUTE6] Use new RFC3542 advanced API if available
    382       [RDISC] Use proper type for is_directly_connected()
    383       [PING,PING6] Use proper type for printf()
    384       [TRACEROUTE6] Fix inet_pton() error handling
    385       [TRACEROUTE6] Use minimum format if 0 is specified for datalen
    386       [TRACEROUTE6] Optimize datalen sanity checking code
    387       [TRACEPATH6] Use getaddrinfo() to allow scoped addresses
    388       [RDISC] Use strerror(errno) instead of sys_errlist[errno]
    389       [PING,PING6] Avoid using __constant_htons() if it is really needed
    390       [TRACEPATH6] Fix format for subseconds
    391       [ARPING,CLOCKDIFF,PING,PING6,TRACEROUTE6] Check return value from setuid().
    392       [PING,PING6] ensure to initialize msg.
    393       [MAKEFILE] Make snapshot using git
    394 
    395 
    396 [020927]
    397 * arping.sgml, some options were forgotten.
    398 * send seqno in network byte order. Me.
    399 * Mads Martin Jrgensen <mmj (a] suse.de> Recursive citation:
    400 "On request of Mads Martin Jrgensen <mmj (a] suse.de> I've added manpages
    401 pregenerated from the Docbook sources. One could argue it is redundant
    402 when the Docbook sources are also there, but the argument of not having
    403 to install Docbook on a very small system to get the man pages was
    404 convinving enough to me. To quote Mads Martin: "How would a system
    405 be without a man page for ping?" 
    406   As a chilidish revenge from my side enjoy with cyrillic date in these
    407   man pages. :-)
    408 * Ken Cox <jkc (a] redhat.com>. Bogus definition of SOCK_DRGAM&SOCK_STREAM on mips.
    409 * Error returned from recvmsg() resulted in a bogus printout in traceroute6. Me.
    410 * Use IPV6_CHECKSUM on icmp socket in traceroute6. Me.
    411 * Noah L. Meyerhans <frodo (a] morgul.net> Fix to doc.
    412 !* Noah L. Meyerhans <frodo (a] morgul.net> What is the problem with "long" triptime?
    413 !  Reporter does not respond. _Malignantly_.
    414 * Thomas 'Dent' Mirlacher <dent (a] cosy.sbg.ac.at> Ping did not exit sometimes!
    415 * Add option -W to override default 10 second linger timeout. Me.
    416 * Mads Martin Jrgensen <mmj (a] suse.de>: ping should not bind to autoselected
    417   source address, it used to work when routing changes. Return classic
    418   behaviour, option -B is added to enforce binding.
    419 * Pekka Savola <pekkas (a] netcore.fi> Forgotten \n messing output of ping6.
    420 * Noah L. Meyerhans <frodo (a] morgul.net> traceroute6 -q 1 did not work.
    421 * Pekka Savola <pekkas (a] netcore.fi> various sizeof() cleanups in traceroute6.c
    422 * "Dmitry V. Levin" <ldv (a] alt-linux.org> wrote:
    423   > ping (as well as other utilities) may open raw socket with descriptor <=2;
    424   > In case of suid-root, it can be used by malicious user to send data to
    425   > this raw socket.
    426   > 
    427   > Yes, modern glibc and some kernels have workaround for it, but
    428   > IMHO iputils shouldn't rely on this feature.
    429   Taken into account, but no changes made.
    430 * "Tilman Heinrich" <tilHeinrich (a] web.de> said some scripts are broken
    431   when word "packet" disappeared from "100% packet loss". Despite of
    432   the inarguable fact that such scripts are truly mad and deserve breaking
    433   (sigh... exit codes are too smart concept for script writers, I guess),
    434   I have to recognize removing this word carrying zero information
    435   was not enough motivated. Returned.
    436 * ping used to retry forever when seeing ENOBUFS/ENOMEM without explicitly
    437   given deadline. Being logically correct it is bad in practice f.e. when
    438   pinging buggy device which locked up with some packets in queue.
    439   So, retry for a finite time... let is be lingertime. Fair? Me.
    440 * Two "messages" are sent to rpm maintainers to make their wrong patches
    441   failed.
    442 * Fix from RH iputils-20001007-deadline.patch. It was lost in the latest
    443   rpms btw.
    444 * Dax Kelson <dax (a] gurulabs.com>: added _unsupported_ option to comppile
    445   rdisc_srv.
    446 
    447 [020124]
    448 * Michal Kochanowicz <michal (a] michal.waw.pl> typos in tracepath.8
    449 * Michael Wardle <michael.wardle (a] adacel.com>: undo silly change of ss000305
    450   (printing rtt in some funny units). Michael noticed that "sec" is not
    451   standard abbreviation for time units (bullshit, of course), but real concern
    452   is that it is more difficult to interpret with a neglibible improvement
    453   to appearance. So, do this as expected: in "ms".
    454 * Documentation. Wow! I did it. man pages are disassembled to docbook,
    455   audited wrt real state, edited... and promised to be maintained
    456   in sync with the state of utilities.
    457 
    458 [011202]
    459 * Utz Bacher <utz.bacher (a] de.ibm.com> Bitops in ping6 were wrong
    460   on bigendian machines. Wow, luckily I forgot to acknowledge that patch
    461   of 010805 which has gotten rid of kernel bitops and did this so wrongly.
    462 * Michael Bakunin <bakunin (a] maphiasoft.org> (:-))
    463   found mud in tftpd.c, it will crash when directory supplied in argument
    464   is longer ~512 symbols.
    465 * Alexandr D. Kanevskiy <kad (a] blackcatlinux.com>: buffer overflow
    466   in clockdiff. Very stupid one, the overflowed buffer even was not used. :-)
    467 * Alexandr D. Kanevskiy <kad (a] blackcatlinux.com>: shit! Code recognizing
    468   kernels with broken IP_RECVERR for raw sockets depended on race
    469   and accused even good kernel of being buggy. :-)
    470 
    471 [011002]
    472 * Stepan Koltsov <yozh (a] mx1.ru>, tracepath/tracepth6 segfaulted when
    473   used without address.
    474 * Alexandr D. Kanevskiy <kad (a] blackcatlinux.com>: arping printed
    475   "permission denied" instead of showing help page to non-superuser.
    476 
    477 [010824]
    478 * Alexandr D. Kanevskiy <kad (a] blackcatlinux.com>: ping compiled
    479   for linux-2.4 forgot to send the second packet, when used with linux-2.2
    480 * Chris Evans <chris (a] scary.beasts.org>: buffer overflow in traceroute6.
    481   datalen was messed: counting header in half of places.
    482   Funny, looking into LBL traceroute, it is even worse :-)
    483 * Alexandr D. Kanevskiy <kad (a] blackcatlinux.com>: relayed patches
    484   by Solar_Diz. Only missing description of option -q is accepted.
    485 * <ipatel (a] wilnetonline.net> ping6 printed wrong mtu.
    486 * Alexandr D. Kanevskiy <kad (a] blackcatlinux.com>: -Werror is removed.
    487   Newer gcc are buggy and generates some wrong warnings about
    488   uninitalized variables, which are evidently initialized.
    489 
    490 [010805]
    491 * Some news from Pekka Savola <pekkas (a] netcore.fi> around setting tos bits.
    492 * arping: broadcast-only mode by Ard van Breemen <ard (a] telegraafnet.nl>
    493 * ping6/traceroute6: parse ICMP errors with extension headers (me)
    494   traceroute6 works with size > mtu now. Nice.
    495 * ping: Erik Quanstrom <quanstro (a] clark.net>. Serious patch.
    496   ping interval timer was not very broken, but very unintelligible.
    497   Though I remade the code to use leaky bucket logic, which
    498   is the most transparent one. Anyway, contribution by Eric is
    499   the most important one since the previous release.
    500   Short theory of operation: option -i (interval) sets rate r=1/interval pps,
    501   option -l (preload) sets burst size of l packets. So, ping sends
    502   at most r*t+l packets for an arbitrary interval t.
    503   Default values: l=1 and for non-flood case: r=1pps, for flood r=infinity.
    504   Nice? Exact algorithm is:
    505 
    506   Let N(t) be l/r=l*i initially and N(t) grow continuously with time as:
    507 
    508 	N(t+delta) = min{l*i, N(t) + delta}
    509 
    510   Packet can be transmitted only at the time t_* when 1/r=i <= N(t_*)
    511   and in this case N(t) jumps:
    512 
    513 	N(t_* + 0) = N(t_* - 0) - i.
    514 
    515   When interval is zero, algo degenerates allowing to send any amount
    516   of messages. In this case we modify it using l as limit on amount
    517   of unanswered requests and waiting for 10msec, when something is not
    518   answered. Note that the last thing (10msec) is just to be compatible with
    519   BSD manual pages. BSD ping is simply not able to avoid delay technically,
    520   we are able now.
    521 
    522   In result we got some new facilities:
    523   * "-f -l 100" becomes very aggressive, in fact on good link
    524     it holds permanently 100 packets in flight, which is very different
    525     of earlier bevaviour (one packet in flight).
    526   * -f and -i are not incompatible more. In fact, "-f -i 1" is equivalent
    527     to plain ping, only output is different (dotted). Essentially,
    528     change of output format is the only effect. "ping -i 0" is flood
    529     printing output in normal format.
    530 
    531   Moved some parts of code to ping_common.c. Common part is not fully
    532   trivial now. :-)
    533 
    534 * ping: Ian Lynagh <igloo (a] earth.li>, larger and dynamic dup detector.
    535   Also, Ian submitted two large patches, one fixing formatting, another
    536   doing something with signedness/longness. Not now...
    537   Later note: found not working. x + 7 / 8 :-). Sorry... dubious, withdrawn.
    538   size of table increased to maximal value instead (8K of memory,
    539   not a big deal).
    540 * tftpd: an old misprint. left (a] sbor.spb.su (Igor A. Lefterov)
    541 * clockdiff: do not fail, if reversed resolution failed.
    542   Tommy Lacroix <tommyl (a] zeroknowledge.com>
    543 * ping: audible ping by Patrik Schilt <patrik (a] bnc.ch>
    544   Patrick's option renamed to -a to align to freebsd.
    545 * ping: react to device queue overflows using IP_RECVERR. me.
    546 * ping: option -S allows to change sndbuf 
    547 * rarpd is moved from separate package here (people asked)
    548 * ping6: kernel style bitops are not used more.
    549 * Option -A to adapt to network rtt.
    550 * Use BPF, when multiple pings are detected.
    551 
    552 [001110]
    553 * ping is able to select TOS. By Pekka Savola <pekkas (a] netcore.fi>
    554 * tracepath* DNS names. By Pawel Krawczyk <kravietz (a] ceti.com.pl> and
    555   Arkadiusz Miskiewicz <misiek (a] pld.org.pl>
    556 * ping6 is expected to be compiled with linux-2.2.
    557 
    558 [001011]
    559 * RH bugid#16677: segfault, when ping is used by root and size
    560   is large enough. Fix is to allow oversize by root (it is necessary
    561   to check kernel side), but clamp it at some safe value.
    562 
    563 [001010]
    564 * More bug fixes from Chris Evans <chris (a] ferret.lmh.ox.ac.uk>
    565   - do not trust h_length returned by system resolver.
    566     This value is meaningless in any case.
    567   - ping: buffer overflow in fill()!!! Disgraceful bug.
    568 
    569 * ping: allow not-priviledged users to use broadcasts. It was paranoia.
    570   Multicasts were allowed. 8)
    571 * ping: but force broadcasts&multicasts not to fragment. BSD does
    572   not allow to do this to anyone, we still allow this for superuser.
    573 * Option -M to control path mtu discovery.
    574 
    575 [001007]
    576 * By Pekka Savola <pekkas (a] netcore.fi>
    577   - SIOCGSTAMP/SO_TIMESTAMP are sensitive to bug in kernel.
    578     When get_fast_time != gettimeofday (f.e. timestampless x86),
    579     returned stamp can be out of sync with gettimeofday.
    580     Workaround is not to use SIOCGSTAMP/SO_TIMESTAMP on such systems.
    581   - fixes in man pages
    582   - compiles under rh-7.0
    583 * Chris Evans <chris (a] ferret.lmh.ox.ac.uk>
    584   - ping: possible buffer overflow in pr_addr().
    585 
    586 [000928]
    587 * Sorry. I have lost all the CVS with changes made since 000418.
    588   If someone sent me a patch after this date, please, resubmit.
    589   Restored from the last backup and mailboxes:
    590 
    591 * ping*, SO_TIMESTAMP support.
    592 * ping*, allow zero data length (reported by Damjan Lango <damjan.lango (a] hermes.si>)
    593 * iputils man and help updates. Pekka Savola <Pekka.Savola (a] netcore.fi>
    594 * ping.8, fix to ping man page. By Dadid Eisner <cradle (a] glue.umd.edu>
    595 * ping prints addresses in numeric, if destination is numeric.
    596   Proposed by Tim Waugh <twaugh (a] meme.surrey.redhat.com>
    597 
    598 New:
    599 * ping: strncpy bug <typo (a] inferno.tusculum.edu>
    600 * arping: improvements by Charles Howes <croot (a] micro-logistics.com>
    601 	- a feature to arping: quit as soon as a reply is received.
    602 	- default to eth0.
    603 	- spelling
    604 
    605 [000418]
    606 * llsqrt() was buggy again!
    607        (noticed by Sam Farin <sfarin (a] ratol.fi>)
    608 
    609 [000404]
    610 * tracepath*, "NURDUnet-gw" bug workaround.
    611 	(noticed by Vitaly E.Lavrov <lve (a] aanet.ru>)
    612 * tracepath*, handle case of routers initializing rtt to 128.
    613 	Vitaly E.Lavrov <lve (a] aanet.ru>
    614 * shadowed icmp_sock in ping6. James Morris <jmorris@@intercode.com.au>
    615 * Bug in ping -f, introduced with SO_RCVTIMEO. me.
    616 * llsqrt() (ping, ping6) was wrong yet. me.
    617 
    618 [000310]
    619 * Print mean deviation of RTT in ping/ping6.
    620 * Use SIOCGSTAMP in ping/ping6. Old behaviour calculating
    621   true user-to-user latency is restored with option -U.
    622   Reason for this stupid change is mainly political; people
    623   wonder why freebsd has twice less latency on loopback.
    624   If to follow along this line, we have to print rtt equal to 0. 8)
    625   [ LATER NOTE: actually, the change is _right_ without any doubts.
    626     Ping has another bug: nameresolver is blocking, so that
    627     when it dies not respond, ping shows evenly increasing by 1 sec
    628     RTT. It is very confusing (look through linux-kernel maillists
    629     to count number of people, who were cheated by misconfigured dns). ]
    630 * Use SO_RCVTIMEO instead of poll() with ping/ping6 -f.
    631 * Added -V option to arping/ping/ping6/traceroute6/rdisc
    632   to print snapshot number.
    633 
    634 [000305]
    635 * rdisc: ugly bug in getting interface list. me.
    636 * ping/ping6: ping -i N, N>=3 did not work. Jeff Jonson <jbj (a] redhat.com>
    637 * ping/ping6: microsecond rtt measurements. me.
    638 
    639 [000120]
    640 * ping/ping6: non-zero exit code even without -w.
    641 
    642 [991024]
    643 * Option "-i" to ping/ping6 takes fractional time now, so that
    644   "ping -i 0.3 xxx" pings each 300 msec. The idea is by
    645   Marc Boucher <marc (a] mbsi.ca>
    646 * alpha/glibc-2.1 alignment problems in ping are fixed (struct timeval
    647   was wrongly aligned).
    648 
    649 [990915]
    650 * ping/ping6 worked only with kernels 2.3.15+ in 990824.
    651 
    652 [990824]
    653 * tftpd is added. It uses MSG_CONFIRM to confirm arp entries.
    654 * ping6: workaround for bug in some egcs versions.
    655 
    656 [990610]
    657 * ping: output buffer was too small for full sized ping.
    658 * ping: silly restriction on ping size is removed.
    659 
    660 [990530]
    661 * short man pages (Oleg M. Shumsky <oms (a] cp.tomsk.su>)
    662 * ping6: get and print hop limit of reply packets (ME)
    663 * rdisc deletes routes before exit with -TERM
    664 * ping/ping6: option -w TIMEOUT 
    665 * arping: exit with error, if received no replies in normal
    666   (not DAD and not unsilicited ARP) mode.
    667 
    668