===============================================================================
LIBNET (c) 1998, 1999 Mike D. Schiffman
route|daemon9
http://www.packetfactory.net/libnet
===============================================================================
Version Released Changes
-------------------------------------------------------------------------------
0.99b 5.06.99 Fixed a nasty UDP/TCP + data checksum bug.
Header structure further divided into subfiles.
Moved get_hwaddr into low-level interface locales.
Fixed the BSD get_hwaddr (dugsong@anzen.com).
Ported to BSD/OS 3.x.
Added `LIBNET_VERSION` symbolic constant.
build_ip with payload semantics changed (now
requires a payload length which is more
intuitive).
Fixed the `disappearing MAC address problem`
within the linux version of get_hwaddr().
0.99a 4.14.99 Linux 2.0.x kernels don't have
0.99 included this header file without checking
to see if it present. This is now fixed.
Non-x86 systems have no tcp_check function but the
stub.c sourcefile did not check this. This is now
fixed.
Added the utilities directory and get_mac.c.
0.99 4.13.99 Major manpage redux.
Added (broken?) PF_PACKET support for Linux (see
README.linux).
Moved alot of m4 from configure.in to aclocal.m4.
Added Linux m4 macro to detect PF_PACKET.
Added build_icmp_unreach
Added build_icmp_timestamp
Added standard nomenclature for all the ICMP
type/code symbolic constants (see the manpage).
Changed internal network structure nomenclature.
Decided to stop using the word nomenclature so much.
Fixed semantics of get_ipaddr (s/PF_INET/AF_INET).
Added a symlink in the install directory so libnet
is also named `libpwrite`.
Added ASN.1 conversion routines, mostly pilfered
from ucd snmplib.
Removed get_hwaddr from sockpacket.c and made the
existing one portable to Linux.
Added more testcode and changed testcode structure
to be more intuitive.
Added init_packet and destroy_packet.
Added an arena allocator.
Fixed alignment issues on SPARC and Alpha
(possibly others with strict alignment
requirements).
Added a packet dumping routine. Not fully tested.
Testcode updates including a master testcode shell
script.
Added stub functions to ease the eventual
transition to a more proper `libnet_*` function
naming convention. See README.stubs for more
info.
0.10a 2.4.99 Added the libnet.s2h configuration file to the
distribution.
GLIBC fix.
0.10 1.31.99 Many low-level changes, same interface though.
Split up the main libnet.h file into two files.
Autoconf changes:
checks to see if the underlying architecture
needs to be aligned.
flexible install location.
explicitly set $CC option in Makefile.in.
Added ensure-dir.sh.
Changes DEBUG semantics as I was told the previous
stuff broke on some compilers.
Created a FreeBSD/OpenBSD ports entry.
SGI snoop (drain) interface fixed.
Solaris/HPUX DLPI interface fixed.
Support for getting local IP addresses.
Support for getting local hardware addresses.
Added a DNS packet builder.
Added an RIP packet builder.
Added an ICMP MASKREQ/REPLY packet builder.
Added ICMP at the link layer test code.
Changed GLIBC version detection semantics.
0.9 12.15.98 Major changes/additions here...
Added lowlevel packet building and writing
routines with a codebase from libpcap.
Broken DPLI support (fixme!).
Added ethernet and ARP building routines.
Added ICMP_ECHO building routine which led to the
Discovery of an odd kernel panic bug under
OpenBSD (see hook.c in test dir).
Added IGMP building routine.
Reworked autoconf script.
Fixed Linux ip_sum vs. ip_csum naming issue.
Fixed Solaris checksums (2.4, 2.5.x).
Added NetBSD autoconf entry.
Changed BSD_BYTE_SWAP semantics to correctly handle
IP datagrams through BPF (see write_ip.c).
0.8c 11.10.98 Added more testcode.
0.8b 10.21.98 OK. I THINK WE'VE FINALLY FIXED THAT GLIBC THING.
Ported to alpha Linux.
0.8a 10.15.98 Added support for IP TOS bits (oops. Broke
backward compatibility again. Like I said, don't
rely on this until 1.x).
0.8 10.13.98 Added support for IP options.
Added support for TCP options.
Added a dummy version function.
Fixed linux libc vs. glibc nomenclature discrepancy.
Solaris checksums fixed for non-payload laden
packets?
0.7b 09.22.98 Linux glibc/libc nomenclature anomoly still there.
Fixed Linux/BSD icmp header size problem.
0.7a 08.26.98 Fixed payload support (see test code).
0.7 08.25.98 Solaris port (checksums broken -- Solaris has gay
fucking quirks when it comes to checksumming on
raw sockets).
Added autoconf scripts.
Added psuedorandom number generation code.
Added payload support (breaks backward
compatability and is untested).
0.6 06.21.98 Fixed UDP checksum. Removed USE_NAME CPP option
made it a run time decision. Makes code more
extensible, but breaks backward compatibility.
0.5 06.02.98 Added TCP/UDP/IP packet assembly routines.
Added a checksum function.
Added a manpage.
Removed daemonizing function (BSD has one).
UDP checksums broken...
0.4 01.12.98 IP checksum (x86 assembly implementation).
0.3 01.12.98 daemonizing function.
0.2 01.11.98 raw socket function changed to allow user
designated protocol for raw socket
0.1 01.05.98 Initial release, contains:
network byte order -> human readable IP address,
human readable IP address -> network byte order,
simple raw socket / IP_HDRINCL wrapper,
TCP checksum (x86 assembly implementation)
EOF