CHANGES LOG

Authors name abbreviation

AZ 	Salvatore Sanfilippo 'antirez'		<antirez@speedcom.it>
FX 	Alfonso De Gregorio 'fhex'		<fhex@speedcom.it>
MK 	Mika					<mika@qualys.com>
SA	Stephane Aubert				<Stephane.Aubert@hsc.fr>
NJ	Nicolas Jombart				<Nicolas.Jombart@hsc.fr>
DD	Denis Ducamp				<Denis.Ducamp@hsc.fr>
FP	Francesco Potorti`			<pot@gnu.org>
YB	Yann Berthier				<Yann.Berthier@hsc.fr>
MM	Minor contributor, see the change description for credits.
??	If you edit this file put yourself here	<your@email>

AZ is the default if not specified.

=======================================================
In order to find bugs fixed search the keyword 'FIX:'
for new supports and features search the keyword 'ADD:'
=======================================================

6 Aug 2001 -- 2.0.0 stable
---------------------------------------------------------------------------

AZ FIX: --fast now really sends 10packets/second, not 100. Thanks
	to DD for the report.
AZ FIX: bzero/bcopy replaced with the sane memset/memcpy.
DG ADD: Solaris port, with the help of the patch contributed by
        Steve Bleazard <steve@bleazard.com>
AZ ADD: Changed a bit the format (flags=S is now <S>) and add the string
        DF if the don't fragment bit is on.
AZ FIX: waitpacket.c to take the data aligned. Now hping seems to
        work without problems on linux/sparc.
AZ FIX: getifname.c, now even the linux version behaves better locking
        for the interface address of the outgoing interface according
	to the kernel routing table. getdefaultif.c removed, no loger used.
AZ FIX --tr-stop enhanced (now really exit when an expected packet that
         was not an ICMP time exceeded was received)
AZ FIX: --stop-tr is now --tr-stop. All the traceroute mode options
        starts with --tr.
AZ ADD: --tr-no-rtt to turn off RTT information in traceroute mode.
        Thanks to Denis Ducamp for the idea.
AZ FIX: Now provide traceroute RTT information even with ICMP.
AZ ADD: --stop-tr stops hping in traceroute mode once the first non
        ICMP packet is received. Thanks to Denis Ducamp for the idea.
AZ ADD: ICMP subnet address mask support. Not tested.
AZ ADD: TCP timestamp support with HZ and uptime guessing (--tcp-timestamp)
AZ ADD: ICMP timestamp support (--icmptype 13)
AZ FIX: Fixed getlhs.c under BSD to get the header length from the like type.
YB NH AZ FIX: ICMP ID handling on systems with 32 bit pids.
DD ADD: Man page update (not french one!)
AZ ADD: --traceroute now prints RTT information.
AZ ADD: --traceroute now implies --ttl 1 if no --ttl option is specified.
AZ ADD: --fast option that is an alias for -u i10000 (10 packets at second)
MM ADD: ets.* interface (thanks to Stefano Brandimarte.)
AZ FIX: compilatin problem (NULL used without including stdlib.h in getusec.c)
AZ FIX: -H switch (alternative to --protoip) thanks to
      "roy kozzer" <royk50@hotmail.com>
MM FIX: Man page grammatical mistakes, thanks to Jason Lunz <j@trellisinc.com>,
     I applied the patch by hand, so maybe some mistake is still inside.
FP FIX: fixed rtt/sequence number handling, now hping2 can run for hours
        keeping the right rtt calculation. Some sentence from the original
	Francesco's email:

I am  using it to make long  measurements of the response  times of http
servers around the world, so hping2 keeps running for days.  In fact, it
is apparently impossible to use  hping2 this way, as the sequence number
wraps around (and  this may be okay, in principle)  and the program goes
astray.

Precisely, the delay measurements are set  to 0 after  the wrap around.
Since  hping2 is  written so  cleanly (thanks),  I was  able  to quickly
correct the problem:
(strange, I think hping2 is very hugly code... I wrote it with
 too little coding experience)
 
BTW now the issue is fixed, MANY thanks to Francesco Portori'.

DD FIX: -seqnum (endianess IIRC) fixed.
DD FIX: Random fix to manpage and code.
NJ FIX/ADD: BSD network interfaces related code.
DD ADD: French translation of the hping documentation, under docs/french/

6 July 2000 -- 2.0.0 beta54, raw IP mode, bug fixing, NetBSD support, ...
---------------------------------------------------------------------------

Solaris support still not present, a patch was provided by
Lorenzo Lazzieri but I did not have a solaris box to performe
some test, give me some solarix 2.[67] root account if you
need hping2 ported to solaris. Sorry, but my sparc S4 died
not long ago.

FIX: the stupid nop.c no longer exist.
FIX: tcp sequence number and ack visualization bug for lacks of ntohl()!
FIX: minor coding bugs fixed, minor code cleanup
FIX: man pages path now is obtained from MANPATH
FIX: new *BSD ethernet under getlhs.c
ADD: NetBSD support (thanks to Yann Berthier)
ADD: settable checksum
ADD: now TCP sequence number and ack are settable.
SA ADD: bad checksum option (-b --badcksum).
ADD: settable fragment offset.
ADD: raw IP mode.
ADD: out of sequence packets counter (only with -r option).
ADD: documentation updated and a bit improved.

20 Nov 1999 -- 2.0.0 beta 53, important bug fixed
-------------------------------------------------

Contrary to my hope this beta go out without Solaris support nor deep
testing under BSD systems. This because beta-53 FIX: some important bugs
so I think it's better to release it as soon as possible. I hope that
beta-54 will be more tested under BSD and will contain a first Solaris
support. Please, send me bug report/suggestions first beta-54 release, AZ

AZ ADD: man page updated.
AZ FIX: a very dirty bug introduced in hping2-beta49, it was in waitpacket.c,
   all offset was computed using the ip header length of the last packet, and
   for the first incoming packet using uninitialized bytes. I suggest you
   upgrade ASAP.
AZ ADD: enanched configure and Makefile. Now "./configure; make" should
   be enough at least under Linux, FreeBSD and OpenBSD. configure has options,
   try ./configure --help. Also FIX: a `make clean' issue.
AZ FIX: a bug in rtt.c, in some circumstance it returned a negative rtt,
   also ADD: an initial sanity check for faster problem tracing in rtt.c.
   Now sent packets are registered into 'delay table' *before* of sending, I
   think this isn't the better way to do a good timing, but since original ping
   program use this way and it avoids some problem hping now use this solution.
AZ FIX: parseoptions.c, some parser fix and more limits for non root users.
AZ ADD: better hgetopt.c, now it's possible to combine short options like
   -S -F etc in -SF. The same kind of bug seems still unfixed in gcc and ssh.
AZ if_promisc.c no longer compiled/linked since it isn't used by hping2.
   I leave this file here for possible future new features. It will be needed
   only for Linux since to set promiscuose mode with libpcap it is not usefull.
AZ ADD:/FIX: getlhs.c updated, now system dipendent, BSD ethernet names
   updated thx to Rui Miguel Barbosa Machado <rmbm@rccn.net>,
   FIX: BSD PPP link header size (I hope). Please send me a mail if you
   sucessfully run hping2 under PPP interface on BSD.
AZ ADD: new `utils' directory added and the simple utility hex2bin
AZ ADD: distribution enanched, CHANGES was extracted from TODO, MIRRORS contain
   a mirrors list, BUGS the bug report form, others files added.

16 Nov 1999 -- 2.0.0 beta 52, first public 2.0.0
-------------------------------------------------

AZ add W option for windoze byte ordering
AZ clearest var names
AZ fix incoming packet size computing
AZ add -V verbose mode
AZ add -D debug mode
AZ add support for 2.2.x kernel PF_PACKET socket
AZ fix (null) hostname problem
AZ add usec interval support for -i option
AZ fix -q option
AZ add -y (dont fragment) option
AZ better checksum algorithm from R. Stevens
AZ better icmp logging
AZ add capability of sending data besides header (-d)
AZ add fragmentation capability even with -d option
AZ add ICMP support
AZ get default routing interface from /proc
AZ add -k (keep still source port) option
AZ add UDP support
AZ all #define revisited for more cleanness
AZ recvto() incoming packet max size fixed
AZ data from file option
AZ hex dump of incoming packets
AZ incoming packets content dump (only printable)
AZ packet sign
AZ hgetopt.c, rewrite parse_options using hgetopt()
AZ GNU style options support
AZ target host argument recognized in any positions
AZ broadcast support, waittcp.c must be update (not for ICMP)
AZ fix some problem in hgetopt.c
AZ portability increased a bit
AZ byteorder.c, add ./configure, just for byte ordering check
AZ -9 | --listen <sign> listen mode for file transfers
AZ settable packets id
AZ fixed some problem in hgetopt.c/parseoption.c, assert() removed
AZ when suid don't allows a lot of options if uid != euid
AZ experimental traceroute mode (-T | --traceroute)
AZ HCMP (hping control message protocol) initial devel
AZ better HCMP support for safe protocol 'semi' implemented
AZ main.c clearness improved and reorder.
AZ HCMP for safe protocol works
AZ fix a bug when fragmentations is active (introduced with --id)
AZ settable tos, more than one --tos are ORed.
AZ strong code cleanup, three new files: rtt.c, relid.c, sendip_handler.c
AZ more portable includes, a bit more portable getifname.c
AZ enanched ICMP support: rtt, (DUP), id.
AZ better ./configure and libpcap support predisposed.
AZ add round-trip min/avg/max statistics.
AZ get interface mtu, tunable fragments size, auto-activate
   fragmentation if packet size > mtu
AZ --destport enanched, now --destport +23 inc dest port
   for each packet sent starting from 23.
AZ add libpcap support, Makefile and some .c updated
AZ fixed a bug introduced enanching --destport option.
AZ if_mtu var name collision in BSD fixed, now h_if_mtu.
AZ better signal handling and minor internal changes.
FX save/restore errno in signal handlers.
FX add memory protection functions mem*.c in order to
   prevent swap of sensitive memory areas.
AZ disable memory paging when --sign, --file, --listen used.
AZ Option -c wait after sending last packet
AZ ported on OpenBSD 2.3 (tested also on OpenBSD 2.5)
AZ enanched ICMP support, now send type 8,0,3,4,5,11
AZ --traceroute default bind ttl to ctrl+z
MK Now waitpacket() handle ip options
MK Record route option support, and update IP related
   functions to handle options. Also add ip_opt_build.c
   and display_ipopt.c (ripped from ping)
AZ some bug fixed
AZ --tcpexitcode option that exit with last tcp->th_flags
AZ datafiller.c bug fix
AZ add -p ++port, as -p +port but that increments the destination
   port even if no replies are received.
AZ fix getifname.c big problems with OpenBSD: it works only
   for certain interface (now *seems* fixed)
AZ portable sendip.c raw socket ip fields byte ordering (N.B.
   Linux and OpenBSD has all ip field in network byte order
   so you may add right defines if you port hping2 to other OSs)
AZ compiles/works under FreeBSD 3.3

17 Dec 1998 -- 0.67 release
---------------------------

AZ add -a option
