libnetdude 0.7 Changelog
========================================================================

Wed May  4 18:17:59 BST 2005             Christian <christian@whoop.org>

This is the 0.7 release.

------------------------------------------------------------------------

Wed May  4 10:12:23 PDT 2005

- TODO list update, final preparations for the 0.7 release.

------------------------------------------------------------------------

Tue May  3 14:42:16 PDT 2005

- libnd_tcpdump_get_packet_line() is now passed the length of the string
into which to write the tcpdump output.
- added lnd-tcpdump.c to the test apps, showing the minimum amount of
code required to interface libnetdude with tcpdump.

------------------------------------------------------------------------

Sat Mar 26 15:40:50 GMT 2005             Christian <christian@whoop.org>

When not passing arguments to lndtool -r, simply dump the installed
plugins as if using -p.

------------------------------------------------------------------------

Fri Mar 18 16:43:24 GMT 2005             Christian <christian@whoop.org>

Don't rely on the platform's FDDI headers -- every OS seems to like them
in a different place and MacOS doesn't provide them at all. We now use
our own struct.

------------------------------------------------------------------------

Thu Mar 17 14:06:54 GMT 2005             Christian <christian@whoop.org>

- Moved configure.ac to configure.in
- Started to integrate MacOS patches from Jonathan Paisley

------------------------------------------------------------------------

Sat Mar 12 13:30:30 GMT 2005             Christian <christian@whoop.org>

- Abort autogen.sh once one of the auto tools fails
- Avoid empty default case in libnd_icmp.c due to gcc pickiness, pointed
out by Breen Mullins.

------------------------------------------------------------------------

Tue Oct 12 16:31:22 BST 2004             Christian <christian@whoop.org>

Fixlet for IP: consider the first of any fragments as normal and do
continue parsing up into higher layers. Comment says the right thing,
but the code didn't :)

------------------------------------------------------------------------

Fri Oct  8 10:52:04 BST 2004             Christian <christian@whoop.org>

Removed the unused second paramter from libnd_packet_fix().

------------------------------------------------------------------------

Thu Oct  7 14:09:11 BST 2004             Christian <christian@whoop.org>

Added TODO bits to the manual.

------------------------------------------------------------------------

Tue Sep  7 02:27:09 BST 2004             Christian <christian@whoop.org>

- Debugging now goes to stderr -- less chance of colliding with
programs communicating via stdin/stdout.

- The new libnd_packet_from_pcap() now works correctly.

- Fixed a warning.

- Updated TODO.

------------------------------------------------------------------------

Mon May 10 15:43:40 PDT 2004

- Write out preferences to disk after initializing to the default
values and then overriding with on-disk values. This way new
config values that get introduced are stored on disk automatically.
Previously, users had to start over with a new config file.

------------------------------------------------------------------------

Mon May 10 15:33:51 PDT 2004

- The packet recycler now enforces a configurable maximum number
of packets. The config setting used for that value is
"num_recycled_packets" in the LND_DOM_NETDUDE preferences domain.

- Fixed a potential memleak when calling libnd_tpm_read_packet().
That function simply memset() the packet to 0 which could lead
to memory leaks. The proper way to handle this is to call the
new libnd_packet_cleanup().

------------------------------------------------------------------------

Wed Apr 21 23:03:38 PDT 2004             Christian <christian@whoop.org>

Introducing support for 802.11. I got tired of not being able to look
into the payload of packets captured on wireless links. This is only
a libnetdude extension -- there's currently no Netdude GUI plugin for
802.11. This btw shows how the GUI app can handle missing GUI protocol
plugins just fine.

The analyzer is really simple and may be partially incorrect, because
I'm not an 802.11 guru: essentially I pass all data after the two-byte
sequence control field up to the SNAP analyzer, if the type field is
zero and the subtype is 0, 1, or 2. (Is 3 okay as well?). Otherwise we
do not demux further.

------------------------------------------------------------------------

Tue Apr 20 14:01:28 PDT 2004

Up to 0.7 for development ...

------------------------------------------------------------------------

Mon Apr 19 21:23:58 PDT 2004             Christian <christian@whoop.org>

Phantastic. I do a release and the next day I find out that there's a
bug in the packet iterator that prevents filtered packets from being
dropped in a read-write iteration. Grrr.

------------------------------------------------------------------------

Mon Apr 19 00:17:54 BST 2004             Christian <christian@whoop.org>

This is 0.6 :)

------------------------------------------------------------------------

Sun Apr 18 15:23:57 PDT 2004             Christian <christian@whoop.org>

Last commits before the new release
- Date fixes
- Documentation updates

------------------------------------------------------------------------

Fri Apr 16 22:00:14 PDT 2004

Exit lndtool after showing plugins.

------------------------------------------------------------------------

Thu Apr 15 11:59:16 PDT 2004

The dummy packets sent to tcpdump processes so far announced
a length of 100, but only a caplen of 1. Apparently this
discrepancy can trigger a clogging of the pipe for reasons
that I don't understand -- but in any case, changing the
len value to 1 seems to fix the problem. If only we had a
library version of tcpdump, then this whole pile of code could
go ...

------------------------------------------------------------------------

Sat Apr 10 20:03:16 BST 2004             Christian <christian@whoop.org>

- Upped version to 0.6
- Fixed the cvs update timestamp in libnd_timestamp.h and cvs.pl
- Small typos fixed

------------------------------------------------------------------------

Tue Apr  6 15:18:21 BST 2004             Christian <christian@whoop.org>

- Added libnd_udp_get_headers() to the UDP protocol plugin
- Added an iteration mechanism for all data items in a LND_Registry.

------------------------------------------------------------------------

Tue Mar  9 15:14:37 GMT 2004             Christian <christian@whoop.org>

Yet another fix to the plugin initialization code -- for the case when
lt_dlopenext() fails. Argh.

------------------------------------------------------------------------

Mon Feb  9 12:55:51 GMT 2004             Christian <christian@whoop.org>

Argh, I missed another potential bug in the plugin initialization, when
initialization fails for some plugins. Fixed.

------------------------------------------------------------------------

Thu Feb  5 04:24:08 GMT 2004             Christian <christian@whoop.org>

Do not automatically create a tcpdump connection for each opened trace,
but do so only when a packet's tcpdump output is actually requested.
Should allow a lot more traces to be opened simultaneously.

------------------------------------------------------------------------

Wed Feb  4 02:33:02 GMT 2004             Christian <christian@whoop.org>

This is 0.5. Yay.

------------------------------------------------------------------------

Wed Feb  4 01:11:28 GMT 2004             Christian <christian@whoop.org>

And use the package version number for the libnetdude plugins as well.

------------------------------------------------------------------------

Sun Feb  1 21:17:33 GMT 2004             Christian <christian@whoop.org>

Wow. Last-minute bugfix: plugin initialization could fail if the init()
hook required using libnd_plugin_find() and plugins were not properly
hooked up yet. Also added a (hidden) debugging option to lndtool.

------------------------------------------------------------------------

Wed Jan 28 16:10:59 GMT 2004             Christian <christian@whoop.org>

Final commits before releasing 0.5...

------------------------------------------------------------------------

Tue Jan 13 16:18:11 GMT 2004             Christian <christian@whoop.org>

- LND_ProtoInfo structures also are converted to the new LND_Registry
now.

------------------------------------------------------------------------

Mon Jan 12 19:07:52 GMT 2004             Christian <christian@whoop.org>

- Separated the concept of a registry to associate arbitrary data with
libnetdude structures into a separate type: LND_Registry.
- Replaced the existing registry of LND_Traces with the new one
- Replaced the fixed user_data pointer in LND_Protocols with the new one.


------------------------------------------------------------------------

Tue Dec 16 15:34:25 GMT 2003             Christian <christian@whoop.org>

Two changes to the TCP plugin:

libnd_tcp_get_headers() returns IP and TCP headers in a packet, and
libnd_tcp_get_payload_length() returns the length of a packet's TCP
payload (excluding the header, thus useful for seq/ack calculations),
in bytes.

------------------------------------------------------------------------

Sun Dec 14 17:05:04 GMT 2003             Christian <christian@whoop.org>

RPM spec file upgraded.

------------------------------------------------------------------------

Sun Dec 14 16:57:36 GMT 2003             Christian <christian@whoop.org>

- The feature plugin's run() hook now returns wether the execution was
successful or not.

- libnetdude-config is replaced with lndtool. lndtool is a binary, not a
shell script, that provides mainly two features on top of
libnetdude-config: listing installed plugins that register successfully.
Also, lndtool allows direct execution of feature plugins from the
command line. This works for plugins designed to take command line
arguments, and significantly simplifies the linking process.

- Documentation updates illustrate this feature in detail.

- libnd_plugin_find() now operates case-insensitively.

- Two passes are made over installed plugins upon registration, to
enable plugins that rely on other plugins to initialize successfully.

------------------------------------------------------------------------

Wed Dec 10 13:52:24 GMT 2003             Christian <christian@whoop.org>

RPM spec file updates -- FTP URL to avoid SourceForge's habit of
adding something to the filename, dependencies, etc.

------------------------------------------------------------------------

Wed Dec 10 11:17:06 GMT 2003             Christian <christian@whoop.org>

- Added a spec file for building RPMs :)
- Up to devel version 0.5

------------------------------------------------------------------------

Tue Dec  9 16:23:14 GMT 2003             Christian <christian@whoop.org>

This is 0.4 :)

------------------------------------------------------------------------

Tue Dec  9 16:21:12 GMT 2003             Christian <christian@whoop.org>

More documentation updates for the upcoming 0.4 release.

------------------------------------------------------------------------

Tue Dec  9 15:40:29 GMT 2003             Christian <christian@whoop.org>

Documentation updates and fixlets.

------------------------------------------------------------------------

Tue Dec  2 20:10:37 GMT 2003             Christian <christian@whoop.org>

Overhaul of the plugin code. The directory scanning is now more
robust and cleaner code. Still too much redundancy, but that will
get fixed another time.


------------------------------------------------------------------------

Tue Nov 18 18:29:57 GMT 2003             Christian <christian@whoop.org>

- valgrind pointed out that I was accessing free'd memory when jumping
to other trace areas. That's fixed now and I hope it didn't crash all
the time on other platforms :)

- Added a LND_TRACE_RELOAD event to trace observers, since there is
a difference between jumping to other spots in a trace and loading
packets. Updated documentation accordingly.

------------------------------------------------------------------------

Mon Nov 17 14:11:44 GMT 2003             Christian <christian@whoop.org>

Doh -- fsync() doesn't make much sense on a socketpair() socket.

------------------------------------------------------------------------

Mon Nov 17 13:09:36 GMT 2003             Christian <christian@whoop.org>

- API renaming: libnd_packet_set_filtered() is more obvious given the
boolean in the parameters.
- Changed my email in the license.

------------------------------------------------------------------------

Tue Nov 11 12:06:47 GMT 2003             Christian <christian@whoop.org>

0.3 released.

------------------------------------------------------------------------

Tue Nov 11 11:35:01 GMT 2003             Christian <christian@whoop.org>

- Fixed a glib warning when NULL is passed to libnd_misc_get_tmpfile().
- lnd-dump now also prints the packet timestamps as plain numbers.


------------------------------------------------------------------------

Mon Nov 10 19:34:54 GMT 2003             Christian <christian@whoop.org>

Promply broke libnd_trace_save() in my last commit as it removed the
temporary file we need there ...

------------------------------------------------------------------------

Mon Nov 10 18:37:02 GMT 2003             Christian <christian@whoop.org>

Lots of fixes for empty traces:

- Prevent infinite loops in packet iterations when a trace part is empty.
The identical start- and end offsets caused infinite loops before.

- Fixed the testsuite and made tests more robust -- do not rely on
tcpdump output.

- Added a simple program to the testsuite that shows tcpdump output
along with packet offsets. 

- Fixed a bug in libnd_tp_free(): the current trace part was not released
properly, leaving behind a dangling temp file.

- Documentation updates.

------------------------------------------------------------------------

Fri Nov  7 17:36:26 GMT 2003             Christian <christian@whoop.org>

- New trace part observer API, similar to the trace and packet observers.
- Changed libnd_tp_insert_packet() to libnd_tp_insert_packets(), so it
can now handle a chain of packets.
- Lots of fixlets for new empty traces. There is still a bug in the file
saving code for newly created traces though.

------------------------------------------------------------------------

Wed Nov  5 16:18:42 GMT 2003             Christian <christian@whoop.org>

- Fixed a nasty bug in file saving that got triggered when saving
a file with a locally modified in-mem trace part. This problem
could have occurred whenever a packet iterator for a trace area
is initialized and the current trace part got modified in-memory.

- Better input checking in TPM routines.

- Added libnd_tpm_clear_current_part(), since it is also useful
from outside libnd_tpm.c.

- Added a few sections to the manual.

- Updated README+TODO file.



------------------------------------------------------------------------

Mon Oct 20 12:18:06 BST 2003             Christian <christian@whoop.org>

- The packet observer callbacks for packet insertion and deletion
do not report the packet indices any longer. If the callback needs
these indices, it can easily obtain them, otherwise they are wasted
time.

- Replaced the packet insertion and deletion callbacks with a pair
of callbacks each, one called before and one after the operation
is performed.

- Moved the jump observer notifier to the correct location,
libnd_tpm_goto_loc(). This fixes inconsistent behaviour after a
packet iterator finishes.

- Fixed the progress reporter to correctly report the size of a
trace area in trace area iteration modes, not the entire trace size.

- Only fire a packet visibility change event when the visibility
actually changed, not every time it is set.

- Fixed libnd_trace_save(). It now correctly saves to the original
file by first saving to a temp file on the same device, then renaming
the output file and then creating a new TPM for that new file.

- Do not automatically mark a packet as dirty after a xxx_RW iteration,
but only when the operations performed on the packet actually modified
anything.

- Updated Checksum-Fix plugin to mark trace as dirty if any packets
were corrected.


------------------------------------------------------------------------

Fri Oct 17 16:37:22 BST 2003             Christian <christian@whoop.org>

extern "C" for all symbols to allow usage from C++.

------------------------------------------------------------------------

Wed Oct 15 18:46:48 BST 2003             Christian <christian@whoop.org>

0.2 released.

------------------------------------------------------------------------

Wed Oct 15 18:23:18 BST 2003             Christian <christian@whoop.org>

Introducing packet iterator observers. Applications can now register
observers to be notified when a packet iterator is initialized, proceeds
to the next packet, etc.

------------------------------------------------------------------------

Wed Oct 15 12:12:59 BST 2003             Christian <christian@whoop.org>

- Fixed a bug in the file saving code that caused the current trace
part to be missed.
- Properly jump back to previous global offset after a trace is synced
to disk.


------------------------------------------------------------------------

Fri Sep 19 23:16:04 BST 2003             Christian <christian@whoop.org>

0.1 released :)

------------------------------------------------------------------------

Fri Sep 19 17:13:18 BST 2003             Christian <christian@whoop.org>

Final commits before the release ...

------------------------------------------------------------------------

Thu Sep 18 15:23:44 BST 2003             Christian <christian@whoop.org>

I had a busy morning and documented most of the remaining API, renamed
a few calls in the TPM to a more consistent libnd_tpm_map_foo_to_bar
scheme, and threw out libnd_gettext.h. This library should really be
free of that stuff.

------------------------------------------------------------------------

Wed Sep 17 19:59:58 BST 2003             Christian <christian@whoop.org>

Ooooh I think the manual is finished ... for now.

------------------------------------------------------------------------

Wed Sep 17 18:45:40 BST 2003             Christian <christian@whoop.org>

Lots more doco, getting there now!

------------------------------------------------------------------------

Wed Sep 17 14:49:55 BST 2003             Christian <christian@whoop.org>

Added libnd_plugin_foreach(), to allow people to iterate over the
registered plugins. Added a test program that uses this to print out
information about all the installed plugins.

------------------------------------------------------------------------

Wed Sep 17 12:32:57 BST 2003             Christian <christian@whoop.org>

Doco updates, also fixed the version numbering in the file installation.
It only used the very first digit, so installation happened into sub-
directories named "0" right now.

------------------------------------------------------------------------

Tue Sep 16 20:34:02 BST 2003             Christian <christian@whoop.org>

Documentation updates ...

------------------------------------------------------------------------

Tue Sep 16 19:35:03 BST 2003             Christian <christian@whoop.org>

Heaps of documentation ... and oooh it is looking goooooood :)

------------------------------------------------------------------------

Tue Sep 16 12:02:11 BST 2003             Christian <christian@whoop.org>

Silencing CVS a bit ...

------------------------------------------------------------------------

Tue Sep 16 11:57:44 BST 2003             Christian <christian@whoop.org>

Documentation! Fixed some comments, started the manual ... needs more
work still ...

------------------------------------------------------------------------

Sun Sep 14 18:46:10 BST 2003             Christian <christian@whoop.org>

pcapnav now has an initialization routine, so call it when libnetdude
bootstraps.

------------------------------------------------------------------------

Fri Sep 12 18:48:59 BST 2003             Christian <christian@whoop.org>

Better error checking when pcapnav fails.

------------------------------------------------------------------------

Fri Sep 12 17:57:02 BST 2003             Christian <christian@whoop.org>

Oh boy. The test trace was still not in CVS.

------------------------------------------------------------------------

Fri Sep 12 17:47:58 BST 2003             Christian <christian@whoop.org>

Renamed LND_PacketIteratorArea to LND_TraceArea. Shorter, and more
precise anyway.

------------------------------------------------------------------------

Mon Sep  8 22:25:16 BST 2003             Christian <christian@whoop.org>

Automatically filter packets after jumping to other parts -- that's
what the user expects.

------------------------------------------------------------------------

Mon Sep  8 21:20:36 BST 2003             Christian <christian@whoop.org>

Introducing a functionality/GUI separation for plugins. Functionality
plugins so far resided in the GUI code, but could obviously also be
useful for non-GUI code. Added filter registry observers so that the GUI
can be nicely notified when changes occurr. Some naming cleanups.

Added a checksum correction plugin and a BPF filter plugin.


------------------------------------------------------------------------

Mon Sep  8 15:48:14 BST 2003             Christian <christian@whoop.org>

Hooked raw protocol data plugin into the packet initialisation again.

------------------------------------------------------------------------

Sun Sep  7 16:42:15 BST 2003             Christian <christian@whoop.org>

Lots of fixes, also the new testsuite was not in CVS yet.

------------------------------------------------------------------------

Thu Sep  4 16:22:41 BST 2003             Christian <christian@whoop.org>

This is a huge commit. I essentially rewrote the trace management in
the library because the GUI-based philosophy was too present in many
parts of the trace management (e.g., thinking of a trace part of a
number of packets loaded into memory as the basic unit of working with
a trace).

This is all gone now, and the trace part management is *heaps* nicer.
It also simplified large parts of the code, which is clearly a good
sign.

There are still some fixmes, but we should be getting there now.

------------------------------------------------------------------------

Fri Jun 27 19:56:37 BST 2003             Christian <christian@whoop.org>

More work on the support of iterating arbitrary trace areas.

------------------------------------------------------------------------

Thu Jun 26 15:53:33 BST 2003             Christian <christian@whoop.org>

libnetdude needs one last feature before the release: the ability to
iterate to and from arbitrary parts in the trace. libpcapnav obviously
provides this (you just keep calling pcapnav_next() or the other calls
for this purpose) but libnetdude is currently masking this by enforcing
iteration over the selection, the current trace part or the entire
trace. Here's the beginning of LND_PACKET_IT_AREA_R and
LND_PACKET_AREA_RW.

------------------------------------------------------------------------

Wed Jun 18 16:33:34 BST 2003             Christian <christian@whoop.org>

Getting closer to the release! Woohoo ...

------------------------------------------------------------------------

Wed Jun 18 17:08:10 BST 2003             Christian <christian@whoop.org>

Packet observers can now be blocked from reporting certain events. This
is currently used only in packet captures, where Netdude blocks repor-
ting of packet insertions/deletions to improve performance.

------------------------------------------------------------------------

Tue Jun 17 18:18:15 BST 2003             Christian <christian@whoop.org>

FreeBSD build fixes. I'm going back to things like __FreeBSD__ to check
for OS-specific features since libnetdude is a library, therefore I do
not want to impose my #ifdef terms (like "BSD_HOST" or something auto-
confish) on other projects.

------------------------------------------------------------------------

Mon Jun 16 19:04:53 BST 2003             Christian <christian@whoop.org>

BSD build fixes -- now builds on OpenBSD :)

------------------------------------------------------------------------

Wed Jun 11 15:13:41 BST 2003             Christian <christian@whoop.org>

The "any" device on Linux works again; also took out some debugging
messages.

------------------------------------------------------------------------

Wed Jun  4 02:08:07 BST 2003             Christian <christian@whoop.org>

Filtering completely works across different trace parts with the imple-
mentation moved into the packet iterators. YEHAW.

Also some minor changes to the packet observer code to make things a
bit more efficient. Oh, and a much nicer README.

------------------------------------------------------------------------

Mon Jun  2 18:10:48 BST 2003             Christian <christian@whoop.org>

And more work on the filtering, moving it down to the packet iterators..
Not quite there yet.


------------------------------------------------------------------------

Mon May 19 06:16:26 BST 2003             Christian <christian@whoop.org>

- The filter stuff needs to be better integrated with packet iteration,
this is the beginning of this -- note the FIXMEs.

- Netdude can now show the protocol type of raw content, added helper
functions for that.

- Support functions for getting timestamps into ASCII format.

- Some comment fixes.

------------------------------------------------------------------------

Fri May 16 18:32:11 BST 2003             Christian <christian@whoop.org>

Move back to stdout for debugging output to avoid a varargs macro call.

------------------------------------------------------------------------

Fri May 16 15:51:09 BST 2003             Christian <christian@whoop.org>

Cleanups, again for the bpf_timeval vs. timeval conflict ...


------------------------------------------------------------------------

Fri May 16 12:55:46 BST 2003             Christian <christian@whoop.org>

Added libnd_misc_ctime() that works like ctime_r(), except that it also
includes the microseconds in the string produced.


------------------------------------------------------------------------

Fri May 16 11:13:01 BST 2003             Christian <christian@whoop.org>

Three new API calls:

double           libnd_tpm_get_size_offset(LND_TPM *tpm);
double           libnd_tpm_get_time_offset(LND_TPM *tpm);
double           libnd_tpm_get_size_fraction(LND_TPM *tpm);

Basically wrappers to pcapnav functions.



------------------------------------------------------------------------

Thu May 15 12:25:40 BST 2003             Christian <christian@whoop.org>

- Fixed a bug in the packet selection code that caused the list
structure to get corrupted when a selected packet gets selected again.

- More work on filter stuff, traces can now be asked if they use a
certain filter.

- Moved filter factories from Netdude down to the library layer.


------------------------------------------------------------------------

Tue May 13 19:39:40 BST 2003             Christian <christian@whoop.org>

Work on the filter API. The BDF filter plugin is almost there now in
Netdude, but showed some deficiencies in the API.


------------------------------------------------------------------------

Tue May 13 12:09:48 BST 2003             Christian <christian@whoop.org>

Added .cvsignores to clean things up a little bit ...


------------------------------------------------------------------------

Mon Mar 31 19:58:28 BST 2003             Christian <christian@whoop.org>

Oops. This is the library -- updated ChangeLog headline.

------------------------------------------------------------------------

Mon Mar 31 19:50:32 BST 2003             Christian <christian@whoop.org>

- Added cvs.pl ChangeLog management script.

------------------------------------------------------------------------

Mon Mar 31 19:26:41 BST 2003             Christian <christian@whoop.org>

- The ChangeLog for libnetdude is maintained as nicely as pcapnav's and
netdude's.
- Added a publish/subscribe interface for changes to packets and traces.
Applications using libnetdude can subscribe to announcements about
updates through callbacks, which get called when these changes occur.
- Miscellaneous cleanups.


------------------------------------------------------------------------
