===============================================================================
    LIBNET 1.0 (c) 1998 - 2001 Mike D. Schiffman <mike@infonexus.com>
                               http://www.packetfactory.net/libnet
===============================================================================


Version     Released        Changes
-------------------------------------------------------------------------------
  1.0.2a    02.06.2001      Oops!  Messed up the install stuff.  Fixed now.
                            Fixed the config.sub to correctly look for arm*
                             architecture.
                            Fixed the test.sh script
                             (Thankz again to syke).
  1.0.2     02.03.2001      Added OpenBSD 2.7 etherspoof lkm and kernel patch.
                             (Thankz to obecian).
                            Added FreeBSD 4.0-STABLE (and 5.0-CURRENT?)
                             etherspoof kernel patch.
                             (Thankz to Matt Bing).
                            Added FreeBSD 4 support for automagic MAC address
                             spoofing (via ioctl).  No more lkm!
                             (Thankz to Toni Andjelkovic).
                            Added VRRP support.
                            Fixed a NULL pointer check in libnet_checksum.c.
                             (Thankz to syke).
                            Fixed a function naming problem in libnet_if_addr.c.
                             (Thankz to gigisull).
                            Fixed a potential byte error in libnet_version.
                             (Thankz to wotan).
                            Fixed a potential overflow in
                             libnet_link_sockpacket.c and libnet_link_dlpi.c.
                             (Thankz to Jarno Huuskonen).
                            Fixed a manpage discrepancy (get_ip_addr returns
                             host-byte, not network-byte).
                            Fixed arena allocation code (misalignments and
                             whatnot) and arena manpage entry (2 arguments
                             were swapped).
                             (Thankz to Bryan T. Schmersal).
                            Fixed datatype discrepancies (u_char was used
                             liberally when char should have been used).
                             (Thankz to Kyle Hargraves).
                            Fixed the PF_PACKET interface to work correctly.
                             (Thankz to Smiler).

  1.0.1b    04.07.2000      Fixed portlist chaining code to allow for more than
                             one active plist chain at a time (as per twitch's
                             patch).
                            Fixed discrepancy between the manpage and code for
                             libnet_close_link_interface.  It now returns 1 on
                             success as per libnet standard (thankz to Toni
                             Andjelkovic for pointing this out).

  1.0.1a    03.29.2001      Fixed a small bug in libnet_link_dlpi.c.

  1.0.1     12.19.1999      Fixed a typo in libnet-headers.h ARH_H -> ARP_H.
                            Fixed a small typo in ether_mod-2.5.c.
                            Pre-happy BD to libnet!  She'z almost 2 yearz old!

  1.0.0     10.27.1999      Added verbose html documentation.
                            Added verbosely commented  example code.
                            Fixed OSPF testcode compile issues.
                            Added ping of death ICMP test code module.
                            Fixed manpage installation wrongness.
                            Fixed a reported bug in OpenBSD etherspoof lkm.
                            Merged OSPF lsa checksum code into main checksum
                             module.
                            Fixed a reported bug in the Makefile.in under
                             Solaris when make install was invoked, the ln
                             failed.
                            Fixed linux-based IP broadcasting using the
                             raw sockets interface.

    0.99g    09.13.1999     Added an OSPF builder (which is still in beta).
                            Fixed the Linux/configure.in bug.  This was an odd
                             bug that affected Linux-based boxes, but not
                             BSD-based machines.  The configure script refused
                             to expand most of the Makefile.in macros in every file
                             because of a conditional check.
                            Fixed some Makefile.in issues.

    0.99f    09.09.1999     Changed test/poink.c to not rely on a previous
                             install of libnet to compile.
                            Added a redhat RPM.
                            Changed sourcefile naming scheme to libnet_*.
                            Removed all assertions from the tree.
                             We are moving closer to a 1.0 release and
                             assertions have no place in production code.
                             Furthermore, there should be no exit points
                             inside a library.  Currently, all functions that
                             made assertions now return an integral 1 upon
                             success and a -1 when the assertion would have
                             failed (some had to be changed from returning
                             void to returning int).  This will not break
                             backward compatbility.
                            Fixed bugs in the arena code.
                             next_packet_from_arena would never return the
                             first chunk of memory, only the "next".  It
                             now handles this special case.  Thanks to
                             Sascha Gresk for locating this bug.
                             Fixed another potential bug when attempting
                              to allocate large packet sizes inside an arena.
                            Added an OpenBSD 2.5 ether_spoof lkm.
                            Fixed TCP options bugs.

    0.99e    07.21.1999     Modified the libnet-config script to work more
                             intutively now.  It accepts multiple arguments.
                             See README.libnet-config.
                            Solaris m4/sh fixes (autoconf phase).
                            Internal error handling changed to use libnet_error.

    0.99d    06.24.1999     Added: build_icmp_redirect().
                            Added: FreeBSD 3.x support for spoofing source.
                            Added: libnet_error().
                            Added: port list chaining code.
                             MAC addrresses (see README.bpf).
                            Bugfix: libnet_select_device correctly accepts
                             NULL device arguments.
                            Bugfix: build_icmp.c now copies the correct amount 
                             of header information.
                            Bugfix: OpenBSD needs HAVE_SOCKADDR_SA_LEN.
                            Changed: write_ip internal semantics.  Cleaner
                             and faster now.
                            Changed: init_packet argument parameters.  More
                             correct now.  Takes a u_short vs. a size_t.

    0.99c   05.28.1999      link_int -> libnet_link_int.
                            Misc small testcode fixes.
                            Added libnet_tcp_header and libnet_ip_header.
                            Added libnet-config shell script, see
                             README.libnet-config and the manpage.
                            Updated ports.
                            Revamped checksum module --  it's much simpler
                             and more efficient (ripped out arch specific
                             code which seemed to be buggy with series' of
                             very large packets).  Dug Song wrote it, with
                             small fixes/changes by MDS.

    0.99b   05.06.1999      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   04.14.1999      Linux 2.0.x kernels don't have <net/ethernet.h>
                             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    04.13.1999      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   02.04.1999      Added the libnet.s2h configuration file to the
                             distribution.
                            GLIBC fix.

    0.10    01.31.1999      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.1998      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.1998      Added more testcode.

    0.8b    10.21.1998      OK.  I THINK WE'VE FINALLY FIXED THAT GLIBC THING.
                            Ported to alpha Linux.

    0.8a    10.15.1998      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.1998      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.1998      Linux glibc/libc nomenclature anomoly still there.
                            Fixed Linux/BSD icmp header size problem.

    0.7a    08.26.1998      Fixed payload support (see test code).

    0.7     08.25.1998      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.1998      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.1998      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.1998      IP checksum (x86 assembly implementation).

    0.3     01.12.1998      daemonizing function.

    0.2     01.11.1998      raw socket function changed to allow user 
                            designated protocol for raw socket

    0.1     01.05.1998      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
