##
## This file is part of libtrace
##
## Copyright (c) 2007 The University of Waikato, Hamilton, New Zealand.
## Authors: Daniel Lawson, WAND Group
##          Perry Lorier, WAND Group
##          
## All rights reserved.
##
## This code has been developed by the University of Waikato WAND 
## research group. For further information please see http://www.wand.net.nz/
##
## libtrace is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## libtrace is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with libtrace; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
##
## $Id: ChangeLog 1131 2007-01-26 02:31:48Z perry $
##
##

- Version 3.0.0
	* Zero-copy
        * Split wag device and wag trace into two separate uris, wag and wtf
          respectively
        * Corrected wag_read so that it correctly reads from the wag device
        * Wag header is now in network byte order so byte order conversion
          added when reading from the header
	* Renamed trace_output_create, trace_output_destroy,
	  trace_packet_create, and trace_packet_destroy as they were 
	  inconsistent with other functions
	* Fixed bug in tracertstats where -c option changed packet interval
	  rather than packet count

- Version 2.0.25
	* updated rtclient_read_packet to be compatible with new rt protocol
	* rtclient input now correctly ignores packets with type = RT_MSG
	* erf_write_packet now deals with rxerrors appropriately
	* building without zlib support should now work properly; 
	* stdin support works again
	* build fixes for openbsd
	* local lt_inttypes.h generated for PRIu64 macros etc
	* setting __attribute__((packed)) on all structs
	* build fixes for tracereport and testing for libgdc
	* added tools/tracestats


- Version 2.0.24 
	* minor bugs in format_erf
	* applied autoconf to tools/ dir - these are now built and installed
	  automatically
	* added --disable-libpacketdump and --disable-tools configure options
	* improved checking for libpcap
	* improved checking for g++ (needed for libpacketdump)

- Version 2.0.23
	* configure fixes for dag
	* set attributes on functions to improve compiler caching
	* include tools/ dir in distributed tar.gz
	* added get_framing_length format function, to return the length
	  of any framing headers added by the capture process (eg, pcap or 
	  ERF headers)
	* added libpacketdump, a library for dumping out packet information
	* updated tracedump to use libpacketdump, and copied it to the tools/
	  directory

- Version 2.0.22
	* Documentation updates
	* Added pcap_dump_flush() replacement function
	* Better doxygen detection
	* Support for legacy DAG POS, ATM and Ethernet formats

- Version 2.0.21
	* fixed error in output erf code, where we were missing 2 bytes
	* will skip vlan headers
	* added trace_decode_uri() function

- Version 2.0.20
	* byte-ordering fixups for WAG
	* writer functions for pcap and wag
	* fix of writer functions for erf
	* format conversion into pcap and erf formats
	* format conversion only applies if input not already in the right
	  format
	* move internal fifo* symbols to tracefifo* to prevent collision
	  with libfifo

- Version 2.0.19 
	* Move code for different input formats (erf, pcap, wag) into
	  separate modules, load and initialise on library load.
	* Add support for primitive trace writing
	  See trace_output_create(), trace_output_destroy(), and
	  trace_write_packet()
	* Added trace_perror() and libtrace errno functionality.

- Version 2.0.18
	* When opening a trace file, call open() with O_LARGEFILE set and 
	  pass the fd into gzdopen/fdopen.
	* Distributions should include man pages and other doxygen generated
	  output
	* make install will install man pages into $PREFIX/man/man3
	* fixed some compilation bugs in most of the examples 

- Version 2.0.17
	* Fixed a bug in trace_get_erf_timestamp for the pcap path. 
	  Timestamps were not being fabricated correctly. This also
	  effected trace_get_seconds, as that calls trace_get_erf_timestamp
	  internally.
	* If bpf_setfilter() fails, output the filterstring it failed on
	* Fixed compilation bug under older distributions (woody), where
	  the LTLIBOBJS auto* macro wasn't being expanded correctly

- Version 2.0.16
        * Ported to OpenBSD - mad props to meanphil
        * Fixed a bug in the event api where it would die instantly
	  for offline traces.
	* Added trace_get_{source,destination}_port
	* Added some constification fixes

- Version 2.0.15b
	* Fix a memory leak
	* Correct calls to trace_get_link to catch a NULL returned
	  when an RX error is detected, handle this, and pas it up
	  the chain where appropriate
	* Use a pcap callback handler when trace_read_packet() reads from
	  a live pcap source. This gives us better diagnostics, such as 
	  being able to tell if an error occured. Also fixed a bug under
	  FreeBSD where pcap would block until a buffer was full, then
	  would let pcap_next iterate over all of them.

- Version 2.0.14
	* Added support for pcap decoding of PPP interfaces (DLT_LINUX_SLL)
	  This DLT provides a direction bit, which we make use of in 
	  trace_get_direction(). Check the docs for the specifics
	* Fixed a bug where ERF traces weren't being checked for rxerrors.
	  If the ERF record indicates an rxerror, then get_link() returns 
	  NULL.
	* Removed an extra , which was preventing compilation under gcc 3.4
	  in FreeBSD

- Version 2.0.13
	* Improved source docs / doxygen
	* Added functions to retrieve TCP, UDP and ICMP headers encapsulated
	  within the IP sublayer
	  * get_tcp_from_ip()
	  * get_udp_from_ip()
	  * get_icmp_from_ip()
	* Added trace_get_next_option to parse TCP/IP options within a
	  libtrace_packet object
	

- Version 2.0.12
	* check for IP Fragmentation - if so, don't return TCP header on a
	  fragmented packet

- Version 2.0.11 

 	* Added in a fallback function for strndup under freebsd. 
	  Thanks to mjl for this code.

- Version 2.0.10
 	* Removed some badly licensed code.

- Version 2.0.9
	* Added improved conditional codepaths for
		* PCAP 
		* ZLIB
		* BPF
		* DAG
	  - These sections of code are only compiled in if there is
	    appropriate support for them in the OS / asked by configure.
	    In the event of no zlib support, we use a fread interface for 
	    uncompressed trace files instead.

- Version 2.0.8
	* Added better configure time checking for pcap-bpf.h (ie, actually fail early if it can't find it or an equivalent)
	* Added trace_set_direction , to set the direction bit in an ERF based trace.
	* Added trace_truncate_packet, to truncate the packet at a specified length


- Version 2.0.7
	* Assorted bugfixes.

- Version 2.0.3 
	* Fixed packet->size bug for pcap

- Version 2.0.2
	* Port to AMD64. Should also work on IA64
	* Will compile cleanly under gcc-2.95 (Debian Woody)
	* Compiles cleanly under FBSD 4.5 and 5.2. 

- Version 2.0.1
	* Port to FreeBSD. Thanks to Phil Murray for testing this

- Version 2.0.0
	* Major API change for cleanup purposes.
		* libtrace_packet_t object used to hold reference to the
		  trace object, the buffer, and assorted variables
	* First autoconf release
	
- Version 1.1.0
	* Tagged as REL_1_1_0
	* First final release tag
	
	
	

