Annotation of embedaddon/libnet/doc/CHANGELOG, revision 1.1.1.1

1.1       misho       1: ===============================================================================
                      2:     $Id: CHANGELOG,v 1.24 2004/03/29 17:24:34 mike Exp $
                      3:     LIBNET 1.1 (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
                      4:                                http://www.packetfactory.net/libnet
                      5: ===============================================================================
                      6: 
                      7: 
                      8: Mon Mar 29 09:23:49 PST 2004                                            1.1.2.1
                      9: 
                     10:     Fixed a typo in the ICMP patch mentioned below.
                     11: 
                     12: Thu Mar 25 10:49:04 PST 2004                                              1.1.2
                     13: 
                     14:     Fixed the ICMP error message builders (there was a pblock assembly bug
                     15:      that would prevent you from building more than one ICMP {unreach, time
                     16:      exceed, redirect} in succession; the order of operations has changed
                     17:      slightly for building these packets, see the documenation and sample code
                     18:     Added a Sebek builder
                     19:     Fixed a bug in libnet_autobuild_arp() that had it pulling in the address to
                     20:      a pointer instead of just the address
                     21:     Added AM_MAINTAINER_MODE to configure.in
                     22:     Changed the __libnet_dump* namespace to the more descriptive libnet_diag*
                     23:     Added libnet_getpacket_size() to return the size of a packet in a given l
                     24:     Removed "protocol" from the libnet context. It was a waste of four bytes
                     25:      The raw socket interface always uses the "IPPROTO_RAW" protocol
                     26:     Fixed a memory leak in the advanced interface; there is now a function
                     27:      libnet_adv_free_packet() to free the memory allocated for the packet
                     28:      when libnet_adv_cull_packet() is called
                     29:     Fixed a bug on big endian boxes that had TCP and UDP checksums with odd
                     30:      payloads come out incorrect 
                     31:     Changes all error messages to look and feel the same:
                     32:      "%s(): foo\n", __func__
                     33:     Added a bunch of htons/htonl fixes
                     34:     Continued to add to the doxygen-based documentation
                     35:     Added support for unconfigured interfaces
                     36:     Changed the number of interfaces libnet can handle from 32 to 512
                     37:     Removed uneeded control structure cruft from libnet_link_dlpi.c
                     38:     Removed sample/ip.c and added sample/ip_link.c and sample/ip_raw.c
                     39:     Added IPv6 fragmentation header builder
                     40:     Added IPv6 routing information header builder
                     41:     Added IPv6 destination options header builder
                     42:     Fixed IPv6 flowlabel and traffic class bitwise math
                     43: 
                     44: Tue Nov 25 15:33:27 PST 2003                                              1.1.1
                     45: 
                     46:     Fixed a bug in libnet_build_icmp_redirect: htonl(gateway) --> gateway.
                     47:     Added icmp_redirect.c sample code.
                     48:     Added libnet_autobuild_arp().
                     49:     Added a slightly faster checksum.
                     50:     Added a GRE builder.
                     51:     Fixed a buffer overflow in libnet_build_dhcp().
                     52:     Added more sanity checks to ensure we have proper link or network layer
                     53:      headers when not in advanced mode.
                     54:     Fixed a bug that would sometimes make __libnet_dump_context() crash under 
                     55:      linux.
                     56:     Migration from sprintf and strcpy snprintf and strncpy.
                     57:     Fixed bug in libnet_build_ipv4() when calculating size of memory block
                     58:     Removed the support directory -- if you're an OLD version of OpenBSD or
                     59:      FreeBSD you deserve what you get.
                     60:     Added a BGP builder.
                     61:     Changed the error handing functions to be more consistent and use
                     62:      __FUNCTION__.
                     63:     Fixed a bug in libnet_pblock_free() -- replaced it with 
                     64:      libnet_pblock_delete().
                     65:     Fixed all of the inconsistencies inside all of the builders and pblock code
                     66:      where some fringe conditions could result in u_longs being crunched into
                     67:      u_shorts.
                     68:     Fixed libnet_pblock_coalesce() to only require one pass through the list. 
                     69:     Added better diagnostics (__libnet_dump_context(), __libnet_dump_pblock()).
                     70:     Added Token Ring and FDDI builders (Linux and Solaris only).
                     71:     Added Token Ring and FDDI sample programs.
                     72:     Fixed the handling of TCP and IP payloads when reusing a pblocks.
                     73:     Fixed the handling of IP headers such that if a TCP packet changes size
                     74:      via subsequent calls to libnet_build_tcp(), the IP header automatically
                     75:      changes size as well.
                     76:     Added libnet_pblock_delete() to remove a pblock from the list.
                     77:     Added ip.c sample program (builds an arbitrary IP packet).
                     78:     Added additional payload sanity checks to libnet_build_*.
                     79:     Added a payload to sample/icmp_echo_cq.c.
                     80:     Added an MPLS builder.
                     81:     Added an 802.1x builder.
                     82:     Added an RPC builder!  Bout time eh?
                     83:     Fixed do1x.c sample code to make the frame valid.
                     84:     Fixed link-interface semantics under Mac/OSX
                     85:     Changed libnet_stats to all be unsigned long longs to accomodate all of
                     86:      hardcore packet writers.
                     87:     Fixed IPv6 support (to some extent) removed the IP_HDRINCL stuff and
                     88:      reworked the resolver stuff to use net_pton() and inet_ntop().
                     89:     Fixed libnet_build_icmpv4_*() to properly handle the IP header in the
                     90:      payload.
                     91:     Fixed libnet_build_igmp() to handle checksums properly.
                     92:     Fixed a bug in libnet_build_dnsv4() -- now it will work for TCP or UDP --
                     93:      see the sample program for details...
                     94:     Fixed a bug in sample/dhcp_discover.c
                     95:     Added multiple packet interface (called the context queue interface).
                     96:      Until I finish the manpage, see the sample code and README files
                     97:      for instructions on how it works.
                     98:     Fixed Cygwin support.
                     99:     Fixed an OS/X compilation error due to lack of system header files.
                    100:     Fixed OS/X link layer bug.
                    101:     Fixed a bug in pblock_coalesce() that resulted in bad checksums when the
                    102:      advanced mode was enabled.
                    103:     Fixed a potential memory leak in pblock_coalesce().
                    104:     Fixed a potential memory leak in libnet_select_device().
                    105:     Fixed a potential memory leak in libnet_plist_chain_new().
                    106:     Fixed Solaris support for IPv6 address support.
                    107:     Fixed minor bugs in libnet_advanced.c.
                    108:     Added loopback device support.
                    109: 
                    110: 
                    111: Mon Aug  5 15:18:52 PDT 2002                                              1.1.0
                    112: 
                    113:     First 1.1.0 non-beta release.
                    114: 
                    115:     Added libnet_adv_write_link() which allows an advanced user to access
                    116:     libnet's low-level frame injection functionality directly.
                    117: 
                    118: 
                    119: Wed Jul 10 08:18:15 PDT 2002                                     1.1.0 Beta 07b
                    120: 
                    121:     Added some words to the manpage.
                    122: 
                    123:     Fixed a typo in libnet-functions.h -- forgot a comma.
                    124: 
                    125: 
                    126: Sun Jul  7 10:37:12 PDT 2002                                     1.1.0 Beta 07a
                    127: 
                    128:     My bad.  Forgot to `make distclean` before last release resulting in some
                    129:     compilation errors.
                    130: 
                    131:     My bad.  Forgot to add advanced *_ADV writing support to libnet_write().
                    132:     Simple fix.
                    133: 
                    134: 
                    135: Tue Jul  2 08:42:57 PDT 2002                                      1.1.0 Beta 07
                    136: 
                    137:     BETA support for IPv6.
                    138: 
                    139:     Fixed the IP and TCP options bugs that bound the TCP and IP payloads to
                    140:     the IP and TCP headers respectively and saw options being appended
                    141:     after the payload.
                    142: 
                    143:     Added libnet_hex_aton().  This functions reads in arbirtrarily long hex
                    144:     strings from the command line and returns the equivalent byte string.  It
                    145:     does an implicit malloc() so make sure to free().
                    146: 
                    147:     Frédéric Raynal submitted a patch to break the coalesce loop down to two
                    148:     passes using realloc resulting in a modest performance increase!  Cool!
                    149: 
                    150:     Added "Advanced Mode" which will initialize the library with additional
                    151:     functionality for advanced users who "know what they're doing".  Basically
                    152:     this feature will remove some of the sanity checks libnet does when
                    153:     building and injecting packets, at the programmer's peril.  It also exposes
                    154:     the libnet_adv() functions.
                    155: 
                    156:     FINALLY changed that irritating struct ether_addr redefintion problem.
                    157:     I internalized the name space of it (-> libnet_ether_addr) so there will
                    158:     be no more issues there.  Please update your code accordingly!
                    159: 
                    160:     Added IGMP checksum support which was omitted by accident.
                    161: 
                    162:     Removed netinet/ip_icmp.h from include list.  This was causing problems
                    163:     when including dnet.h which includes other system headers.  We can
                    164:     probably stand to remove several headers from libnet.h.in.
                    165: 
                    166:     Added sanity check to ensure that when *build_ethernet() is called the
                    167:     injection method is LIBNET_LINK (except when advanced mode is on).
                    168: 
                    169: 
                    170: Thu Mar 28 22:18:46 PST 2002                                      1.1.0 Beta 06
                    171: 
                    172:     Fixed ICMP unreachable checksum error and payload issues.  Now using the
                    173:     payload interface with unreachables will append the payload to the IPv4
                    174:     header of the "offending packet".
                    175: 
                    176:     Split STP builder into two; libnet_build_stp_conf() and
                    177:     libnet_build_stp_tcn().
                    178: 
                    179:     New CHANGELOG format.  :)
                    180: 
                    181: 
                    182: Mar 24 2002                                                       1.1.0 Beta 05
                    183: 
                    184:     New building logic.  Top down.  Much smarter, we now build packets and
                    185:     frames like an OS kernel.
                    186: 
                    187:     Added Cisco ISL builder.
                    188: 
                    189: 
                    190: Mar 18 2002                                                       1.1.0 Beta 04
                    191: 
                    192:     Added an STP builder.
                    193: 
                    194:     Hooks for Cisco ISL builder.
                    195: 
                    196:     Changed libnet_init() to now accept an IP address for the device (so 
                    197:     either "fxp0" or "192.168.0.1" will work).
                    198: 
                    199:     Added libnet_clear_packet() to free packet memory when we're done with it.
                    200: 
                    201: 
                    202: Feb 28 2002                                                       1.1.0 Beta 03
                    203: 
                    204:     Added 802.1q, 802.2, 802.3 builders.
                    205: 
                    206: 
                    207: Feb 25 2002                                                       1.1.0 Beta 02
                    208: 
                    209:     Fixed Cygwin support.
                    210: 
                    211: 
                    212: Feb 01 2002                                                       1.1.0 Beta 01
                    213: 
                    214:     Complete new API and overhaul of most everything.
                    215: 
                    216:     Improved linux packet socket support.
                    217:                             
                    218:     Renamed libnet_host_lookup() and libnet_name_resolve() to the more 
                    219:     intuitive libnet_addr2name() and libnet_name2addr().
                    220: 
                    221:     All of the address resolution functions return host byte order (which 
                    222:     is what the build functions want).
                    223: 
                    224:     Removed a ton of code from every corner of libnet.
                    225: 
                    226:     Removed alot of useless crap:
                    227:         misc directory
                    228:         ports directory
                    229:         util directory
                    230:         cleaned out the test directory and moved it to sample
                    231:                             
                    232:     The libnet-config script is no longer needed to specify machine 
                    233:     endianess -- that has been moved to libnet.h and done at compile time.
                    234:     You can still use it to specify other CPP constants as well as 
                    235:     libraries.
                    236: 
                    237:     Added cygwin support.
                    238: 
                    239:     Hooks for a few ieee 802 builders.
                    240: 
                    241:     Added NTP builder.
                    242: 
                    243:     Added DHCP builder.
                    244: 
                    245:     Added BOOTP builder.
                    246: 
                    247:     Added Cisco CDP builder (needs work).
                    248: 
                    249:     Added IPSEC builder (needs work).
                    250: 
                    251: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                    252: 
                    253:   1.0.2a    02.06.2001      Oops!  Messed up the install stuff.  Fixed now.
                    254:                             Fixed the config.sub to correctly look for arm*
                    255:                              architecture.
                    256:                             Fixed the test.sh script
                    257:                              (Thankz again to syke).
                    258: 
                    259:   1.0.2     02.03.2001      Added OpenBSD 2.7 etherspoof lkm and kernel patch.
                    260:                              (Thankz to obecian).
                    261:                             Added FreeBSD 4.0-STABLE (and 5.0-CURRENT?)
                    262:                              etherspoof kernel patch.
                    263:                              (Thankz to Matt Bing).
                    264:                             Added FreeBSD 4 support for automagic MAC address
                    265:                              spoofing (via ioctl).  No more lkm!
                    266:                              (Thankz to Toni Andjelkovic).
                    267:                             Added VRRP support.
                    268:                             Fixed a NULL pointer check in libnet_checksum.c.
                    269:                              (Thankz to syke).
                    270:                             Fixed a function naming problem in libnet_if_addr.c.
                    271:                              (Thankz to gigisull).
                    272:                             Fixed a potential byte error in libnet_version.
                    273:                              (Thankz to wotan).
                    274:                             Fixed a potential overflow in
                    275:                              libnet_link_sockpacket.c and libnet_link_dlpi.c.
                    276:                              (Thankz to Jarno Huuskonen).
                    277:                             Fixed a manpage discrepancy (get_ip_addr returns
                    278:                              host-byte, not network-byte).
                    279:                             Fixed arena allocation code (misalignments and
                    280:                              whatnot) and arena manpage entry (2 arguments
                    281:                              were swapped).
                    282:                              (Thankz to Bryan T. Schmersal).
                    283:                             Fixed datatype discrepancies (u_char was used
                    284:                              liberally when char should have been used).
                    285:                              (Thankz to Kyle Hargraves).
                    286:                             Fixed the PF_PACKET interface to work correctly.
                    287:                              (Thankz to Smiler).
                    288: 
                    289:   1.0.1b    04.07.2000      Fixed portlist chaining code to allow for more than
                    290:                              one active plist chain at a time (as per twitch's
                    291:                              patch).
                    292:                             Fixed discrepancy between the manpage and code for
                    293:                              libnet_close_link_interface.  It now returns 1 on
                    294:                              success as per libnet standard (thankz to Toni
                    295:                              Andjelkovic for pointing this out).
                    296: 
                    297:   1.0.1a    03.29.2000      Fixed a small bug in libnet_link_dlpi.c.
                    298: 
                    299:   1.0.1     12.19.1999      Fixed a typo in libnet-headers.h ARH_H -> ARP_H.
                    300:                             Fixed a small typo in ether_mod-2.5.c.
                    301:                             Pre-happy BD to libnet!  She'z almost 2 yearz old!
                    302: 
                    303:   1.0.0     10.27.1999      Added verbose html documentation.
                    304:                             Added verbosely commented  example code.
                    305:                             Fixed OSPF testcode compile issues.
                    306:                             Added ping of death ICMP test code module.
                    307:                             Fixed manpage installation wrongness.
                    308:                             Fixed a reported bug in OpenBSD etherspoof lkm.
                    309:                             Merged OSPF lsa checksum code into main checksum
                    310:                              module.
                    311:                             Fixed a reported bug in the Makefile.in under
                    312:                              Solaris when make install was invoked, the ln
                    313:                              failed.
                    314:                             Fixed linux-based IP broadcasting using the
                    315:                              raw sockets interface.
                    316: 
                    317:     0.99g    09.13.1999     Added an OSPF builder (which is still in beta).
                    318:                             Fixed the Linux/configure.in bug.  This was an odd
                    319:                              bug that affected Linux-based boxes, but not
                    320:                              BSD-based machines.  The configure script refused
                    321:                              to expand most of the Makefile.in macros in every file
                    322:                              because of a conditional check.
                    323:                             Fixed some Makefile.in issues.
                    324: 
                    325:     0.99f    09.09.1999     Changed test/poink.c to not rely on a previous
                    326:                              install of libnet to compile.
                    327:                             Added a redhat RPM.
                    328:                             Changed sourcefile naming scheme to libnet_*.
                    329:                             Removed all assertions from the tree.
                    330:                              We are moving closer to a 1.0 release and
                    331:                              assertions have no place in production code.
                    332:                              Furthermore, there should be no exit points
                    333:                              inside a library.  Currently, all functions that
                    334:                              made assertions now return an integral 1 upon
                    335:                              success and a -1 when the assertion would have
                    336:                              failed (some had to be changed from returning
                    337:                              void to returning int).  This will not break
                    338:                              backward compatbility.
                    339:                             Fixed bugs in the arena code.
                    340:                              next_packet_from_arena would never return the
                    341:                              first chunk of memory, only the "next".  It
                    342:                              now handles this special case.  Thanks to
                    343:                              Sascha Gresk for locating this bug.
                    344:                              Fixed another potential bug when attempting
                    345:                               to allocate large packet sizes inside an arena.
                    346:                             Added an OpenBSD 2.5 ether_spoof lkm.
                    347:                             Fixed TCP options bugs.
                    348: 
                    349:     0.99e    07.21.1999     Modified the libnet-config script to work more
                    350:                              intutively now.  It accepts multiple arguments.
                    351:                              See README.libnet-config.
                    352:                             Solaris m4/sh fixes (autoconf phase).
                    353:                             Internal error handling changed to use libnet_error.
                    354: 
                    355:     0.99d    06.24.1999     Added: build_icmp_redirect().
                    356:                             Added: FreeBSD 3.x support for spoofing source.
                    357:                             Added: libnet_error().
                    358:                             Added: port list chaining code.
                    359:                              MAC addrresses (see README.bpf).
                    360:                             Bugfix: libnet_select_device correctly accepts
                    361:                              NULL device arguments.
                    362:                             Bugfix: build_icmp.c now copies the correct amount 
                    363:                              of header information.
                    364:                             Bugfix: OpenBSD needs HAVE_SOCKADDR_SA_LEN.
                    365:                             Changed: write_ip internal semantics.  Cleaner
                    366:                              and faster now.
                    367:                             Changed: init_packet argument parameters.  More
                    368:                              correct now.  Takes a u_short vs. a size_t.
                    369: 
                    370:     0.99c   05.28.1999      link_int -> libnet_link_int.
                    371:                             Misc small testcode fixes.
                    372:                             Added libnet_tcp_header and libnet_ip_header.
                    373:                             Added libnet-config shell script, see
                    374:                              README.libnet-config and the manpage.
                    375:                             Updated ports.
                    376:                             Revamped checksum module --  it's much simpler
                    377:                              and more efficient (ripped out arch specific
                    378:                              code which seemed to be buggy with series' of
                    379:                              very large packets).  Dug Song wrote it, with
                    380:                              small fixes/changes by MDS.
                    381: 
                    382:     0.99b   05.06.1999      Fixed a nasty UDP/TCP + data checksum bug.
                    383:                             Header structure further divided into subfiles.
                    384:                             Moved get_hwaddr into low-level interface locales.
                    385:                             Fixed the BSD get_hwaddr (dugsong@anzen.com).
                    386:                             Ported to BSD/OS 3.x.
                    387:                             Added `LIBNET_VERSION` symbolic constant.
                    388:                             build_ip with payload semantics changed (now
                    389:                              requires a payload length which is more
                    390:                              intuitive).
                    391:                             Fixed the `disappearing MAC address problem`
                    392:                              within the linux version of get_hwaddr().
                    393: 
                    394:     0.99a   04.14.1999      Linux 2.0.x kernels don't have <net/ethernet.h>
                    395:                              0.99 included this header file without checking
                    396:                              to see if it present.  This is now fixed.
                    397:                             Non-x86 systems have no tcp_check function but the
                    398:                              stub.c sourcefile did not check this.  This is now
                    399:                              fixed.
                    400:                             Added the utilities directory and get_mac.c.
                    401: 
                    402:     0.99    04.13.1999      Major manpage redux.
                    403:                             Added (broken?) PF_PACKET support for Linux (see
                    404:                              README.linux).
                    405:                             Moved alot of m4 from configure.in to aclocal.m4.
                    406:                             Added Linux m4 macro to detect PF_PACKET.
                    407:                             Added build_icmp_unreach
                    408:                             Added build_icmp_timestamp
                    409:                             Added standard nomenclature for all the ICMP
                    410:                              type/code symbolic constants (see the manpage).
                    411:                             Changed internal network structure nomenclature.
                    412:                             Decided to stop using the word nomenclature so much.
                    413:                             Fixed semantics of get_ipaddr (s/PF_INET/AF_INET).
                    414:                             Added a symlink in the install directory so libnet
                    415:                              is also named `libpwrite`.
                    416:                             Added ASN.1 conversion routines, mostly pilfered
                    417:                              from ucd snmplib.
                    418:                             Removed get_hwaddr from sockpacket.c and made the
                    419:                              existing one portable to Linux.
                    420:                             Added more testcode and changed testcode structure
                    421:                              to be more intuitive.
                    422:                             Added init_packet and destroy_packet.
                    423:                             Added an arena allocator.
                    424:                             Fixed alignment issues on SPARC and Alpha
                    425:                              (possibly others with strict alignment
                    426:                              requirements).
                    427:                             Added a packet dumping routine.  Not fully tested.
                    428:                             Testcode updates including a master testcode shell
                    429:                              script.
                    430:                             Added stub functions to ease the eventual
                    431:                              transition to a more proper `libnet_*` function
                    432:                              naming convention.  See README.stubs for more
                    433:                              info.
                    434: 
                    435:     0.10a   02.04.1999      Added the libnet.s2h configuration file to the
                    436:                              distribution.
                    437:                             GLIBC fix.
                    438: 
                    439:     0.10    01.31.1999      Many low-level changes, same interface though.
                    440:                             Split up the main libnet.h file into two files.
                    441:                             Autoconf changes:
                    442:                              checks to see if the underlying architecture
                    443:                              needs to be aligned.
                    444:                              flexible install location.
                    445:                              explicitly set $CC option in Makefile.in.
                    446:                             Added ensure-dir.sh.
                    447:                             Changes DEBUG semantics as I was told the previous
                    448:                              stuff broke on some compilers.
                    449:                             Created a FreeBSD/OpenBSD ports entry.
                    450:                             SGI snoop (drain) interface fixed.
                    451:                             Solaris/HPUX DLPI interface fixed.
                    452:                             Support for getting local IP addresses.
                    453:                             Support for getting local hardware addresses.
                    454:                             Added a DNS packet builder.
                    455:                             Added an RIP packet builder.
                    456:                             Added an ICMP MASKREQ/REPLY packet builder.
                    457:                             Added ICMP at the link layer test code.
                    458:                             Changed GLIBC version detection semantics.
                    459: 
                    460:     0.9     12.15.1998      Major changes/additions here...
                    461:                             Added lowlevel packet building and writing
                    462:                              routines with a codebase from libpcap.
                    463:                             Broken DPLI support (fixme!).
                    464:                             Added ethernet and ARP building routines.
                    465:                             Added ICMP_ECHO building routine which led to the
                    466:                              Discovery of an odd kernel panic bug under
                    467:                              OpenBSD (see hook.c in test dir).
                    468:                             Added IGMP building routine.
                    469:                             Reworked autoconf script.
                    470:                             Fixed Linux ip_sum vs. ip_csum naming issue.
                    471:                             Fixed Solaris checksums (2.4, 2.5.x).
                    472:                             Added NetBSD autoconf entry.
                    473:                             Changed BSD_BYTE_SWAP semantics to correctly handle
                    474:                              IP datagrams through BPF (see write_ip.c).
                    475: 
                    476:     0.8c    11.10.1998      Added more testcode.
                    477: 
                    478:     0.8b    10.21.1998      OK.  I THINK WE'VE FINALLY FIXED THAT GLIBC THING.
                    479:                             Ported to alpha Linux.
                    480: 
                    481:     0.8a    10.15.1998      Added support for IP TOS bits (oops.  Broke
                    482:                              backward compatibility again.  Like I said, don't
                    483:                              rely on this until 1.x).
                    484: 
                    485:     0.8     10.13.1998      Added support for IP options.
                    486:                             Added support for TCP options.
                    487:                             Added a dummy version function.
                    488:                             Fixed linux libc vs. glibc nomenclature discrepancy.
                    489:                             Solaris checksums fixed for non-payload laden
                    490:                              packets?
                    491: 
                    492:     0.7b    09.22.1998      Linux glibc/libc nomenclature anomoly still there.
                    493:                             Fixed Linux/BSD icmp header size problem.
                    494: 
                    495:     0.7a    08.26.1998      Fixed payload support (see test code).
                    496: 
                    497:     0.7     08.25.1998      Solaris port (checksums broken -- Solaris has gay
                    498:                              fucking quirks when it comes to checksumming on
                    499:                              raw sockets).
                    500:                             Added autoconf scripts.
                    501:                             Added psuedorandom number generation code.
                    502:                             Added payload support (breaks backward
                    503:                             compatability and is untested).
                    504: 
                    505:     0.6     06.21.1998      Fixed UDP checksum.  Removed USE_NAME CPP option
                    506:                              made it a run time decision.  Makes code more
                    507:                              extensible, but breaks backward compatibility.
                    508: 
                    509:     0.5     06.02.1998      Added TCP/UDP/IP packet assembly routines.
                    510:                             Added a checksum function.
                    511:                             Added a manpage.
                    512:                             Removed daemonizing function (BSD has one).
                    513:                             UDP checksums broken...
                    514: 
                    515:     0.4     01.12.1998      IP checksum (x86 assembly implementation).
                    516: 
                    517:     0.3     01.12.1998      daemonizing function.
                    518: 
                    519:     0.2     01.11.1998      raw socket function changed to allow user 
                    520:                             designated protocol for raw socket
                    521: 
                    522:     0.1     01.05.1998      Initial release, contains: 
                    523:                              network byte order -> human readable IP address,
                    524:                              human readable IP address -> network byte order,
                    525:                              simple raw socket / IP_HDRINCL wrapper,
                    526:                              TCP checksum (x86 assembly implementation)
                    527: EOF

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>