CHANGES LOG $Id: CHANGES,v 1.33 2004/03/10 12:11:51 njombart Exp $ Authors name abbreviation AZ Salvatore Sanfilippo 'antirez' FX Alfonso De Gregorio 'fhex' MK Mika SA Stephane Aubert NJ Nicolas Jombart DD Denis Ducamp FP Francesco Potorti` YB Yann Berthier BJ Brieuc Jeunhomme HK Hans-Joachim Knobloch MM Minor contributor, see the change description for credits. ?? If you edit this file put yourself here 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:' ======================================================= TO FIX before ??: * The problem with --rroute and the IP header length field on SunOS, thanks to Graeme Hewson for reporting it. MM FIX: Fix for interface guessing with aliases on BSD Thanks and MM FIX: fixed cksum.c. Bad outgoing packet checksum with some packet. Thanks to Brett Eldridge . AZ ADD: scan mode (--scan) AZ ADD: A rc4-based PRNG to use with --rand-source and --rand-dest NJ FIX: Fix -I option for BSD/Apple NJ ADD: Add support for BSDI and MacOSX (thanks Dennis Opacki and Jan-Hinrich Fessel ) HK ADD: A few useful ICMP options NJ ADD: Add support for : WLAN (Fabian Melzow ) ATM (Debian bug #193436, thanks to Domenico Andreoli) Token Ring (jim.r.halfpenny@britishairways.com) NJ ADD: MacOSX patches (Hans-Joachim Knobloch ) NJ FIX: --rand-source patches from Quentin Garnier . ensure randomness . do not stop on errors when using a E or D class address (BSD only?) 20 Nov 2002 -- 2.0.0 stable -- candidate release 2 --------------------------------------------------------------------------- NJ FIX: The bug about port number printing in TCP mode than YB discovered. NJ ADD: MTU value sanity check in option parsing. NJ FIX: Fix the use of -W option NJ ADD: strLcpy() function taken from OpenBSD NJ FIX: Fix a bug when using BSD and a PPP link as a default route Move code from routing sockets to get_output_if function. BJ FIX/ADD: source routing and random bugfixes. Thanks BJ! AZ ADD: --rand-source for random source addresses. AZ FIX: all the atoi() call was replaced with strto[u]l(). MM FIX: seq/ack setting using strtoul() instead of atoi(), thanks to Shachar Shemesh . AZ ADD: --rand-dest for random destination addresses + manpage update. AZ FIX/ADD: Major code rewrite. AZ FIX: DF added to the icmp and udp output. AZ FIX: --port ++ fixed with UDP and enhanced for TCP/UDP. Now the packets matches only with a sport that is: >= base_dest_port AND <= current_dest_port. Thanks to David Bar for the original report. 15 Aug 2001 -- 2.0.0 stable -- candidate release 1 --------------------------------------------------------------------------- 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 AZ ADD: Changed a bit the format (flags=S is now ) 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: compilation problem (NULL used without including stdlib.h in getusec.c) AZ FIX: -H switch (alternative to --protoip) thanks to "roy kozzer" MM FIX: Man page grammatical mistakes, thanks to Jason Lunz , I applied the patch by hand, so maybe some mistake is still inside. FP FIX: fixed rtt/sequence number handling, now hping6 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 hping6 keeps running for days. In fact, it is apparently impossible to use hping6 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 hping6 is written so cleanly (thanks), I was able to quickly correct the problem: (strange, I think hping6 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 perform some test, give me some solarix 2.[67] root account if you need hping6 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 hping6-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: enhanced 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 hping6. I leave this file here for possible future new features. It will be needed only for Linux since to set promiscuous mode with libpcap it is not useful. AZ ADD:/FIX: getlhs.c updated, now system dependent, BSD ethernet names updated thx to Rui Miguel Barbosa Machado , FIX: BSD PPP link header size (I hope). Please send me a mail if you successfully run hping6 under PPP interface on BSD. AZ ADD: new `utils' directory added and the simple utility hex2bin AZ ADD: distribution enhanced, 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 (don't 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 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 enhanced 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 enhanced, 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 enhancing --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 enhanced 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 hping6 to other OSs) AZ compiles/works under FreeBSD 3.3 17 Dec 1998 -- 0.67 release --------------------------- AZ add -a option