libnetdude 0.11 Changelog ======================================================================== Mon Sep 1 14:47:03 CEST 2008 Christian <christian@whoop.org> This is 0.11. ------------------------------------------------------------------------ Mon Sep 1 14:43:54 CEST 2008 Christian <christian@whoop.org> Bump documentation version number to 0.11. ------------------------------------------------------------------------ Fri Aug 29 15:55:55 CEST 2008 Christian <christian@whoop.org> A whole round of mostly minor updates and cleanups: - Added libnd_proto_plugin_add() to allow external registration of protocol plugins. The upcoming Netdude 0.5 uses this for the new pcap plugin. - The way some of the PACKAGE_xxx strings were derived by configure was broken on recent systems, and is now more thorough. - Copyright years updated. - Cosmetic cleanups to ChangeLog, new versions of generated files. ------------------------------------------------------------------------ Fri Dec 14 17:25:14 CET 2007 Christian <christian@whoop.org> - No longer force unclaimed payload bytes to be shown as raw data, as the user is likely to confuse this with regular payload, for example of TCP. ------------------------------------------------------------------------ Wed Dec 5 11:07:01 PST 2007 Christian <christian@whoop.org> More robust determination of the various paths at configuration time (as used, for example, by lndtool). The code previously didn't ensure that all variables in paths are resolved, which would lead to broken paths at runtime. ------------------------------------------------------------------------ Tue Nov 13 10:58:17 PST 2007 Christian <christian@whoop.org> - Added support for VLAN-tagged Ethernet headers. ------------------------------------------------------------------------ Sun Jun 24 16:17:08 PDT 2007 Christian <christian@whoop.org> This is 0.10a. ------------------------------------------------------------------------ Sun Jun 24 13:41:38 PDT 2007 Christian <christian@whoop.org> Bugfix: initialize the new packet data when the caplen is increased. ------------------------------------------------------------------------ Tue Jun 12 14:31:49 PDT 2007 Christian <christian@whoop.org> The init_packet() hook of LND_Protocol has been changed to return a pointer to the end of the area of data actually used by the protocol, and the protocol plugins have been updated accordingly. This allows protocols earlier on in the chain to become aware of subsequent protocols not using up all the given space. A case in point where this occurs is ICMP extensions: so far, Netdude would not properly parse/show the MPLS information that is contained in some of the ICMP traffic triggered by traceroute, because for ICMP errors the chain would end with the last protocol contained in the embedded ICMP-triggering datagram. This protocol, however, knows nothing about the following MPLS extension header. ------------------------------------------------------------------------ Wed Jun 6 21:50:03 PDT 2007 Christian <christian@whoop.org> This is 0.10. ------------------------------------------------------------------------ Tue Jun 5 17:57:16 PDT 2007 Christian <christian@whoop.org> - New API function libnd_packet_get_nth_proto(), to provide direct access to a packet's nth protocol metadata. - Fixed a bug in the caplen/len adjustment code: reducing the wire length didn't work as expected. ------------------------------------------------------------------------ Mon Jun 4 19:16:44 PDT 2007 Christian <christian@whoop.org> Fixlets for the upcoming release. ------------------------------------------------------------------------ Sat Jun 2 22:26:27 PDT 2007 Christian <christian@whoop.org> Correcting the lnd-headerwalk example to a recent API callback change. ------------------------------------------------------------------------ Fri May 11 00:00:29 PDT 2007 Christian <christian@whoop.org> A pass over the C files to ensure that they all include config.h correctly. Now that we have large file support, it is crucial that it is used consistently everywhere, otherwise nasty segfaults with useless backtraces are the norm. :( ------------------------------------------------------------------------ Fri Apr 6 23:04:30 PDT 2007 Christian <christian@whoop.org> Fixed a naming typo -- we have nothing to do with libnet. ;) ------------------------------------------------------------------------ Thu Mar 8 15:31:41 PST 2007 Christian <christian@whoop.org> - Turns out that libnd_packet_fix() was broken. For example, in the case of an IP fragment, it would go beyond the IP header of the initial fragment and happily correct the checksum of a following TCP header. This has now been corrected: the new can_fix_proceed() member of a protocol implementation can decide whether it makes sense to continue to fix a packet beyond a given protocol header. Currently the only protocol implementing this is the IP plugin. - New convenience functions introduced in the process: - libnd_packet_get_num_protos() Returns number of protocols in a packet. - libnd_packet_get_last_fixable_proto() Returns the index of the last protocol in a packet where checksum correction makes sense. - libnd_packet_get_proto_index() Given an arbitrary protocol instance (say, IP at nesting 1), returns the index of such a protocol instance in the given packet. - Actually makde libnd_packet_tell_observers() propagate the new len/ caplen change notifications. ------------------------------------------------------------------------ Tue Mar 6 14:13:09 PST 2007 Christian <christian@whoop.org> A bunch of pretty cool new features: - The pcap packet header attached to each packet in a pcap trace is now editable, meaning you can edit a packet's timestamp. This has been implemented via a 'pcap' pseudo-protocol, effectively treating the pcap packet header as part of the packet. - Also, packet sizes are now adjustable. More precisely, a packet's capture length and wire length can be changed separately, yielding new editable packet content as necessary. When modifying a packet's wire length, the protocol handlers are invoked to update their header fields to the changed packet size. - The callback passed to libnd_packet_foreach_proto[_backward]() is now expected to return a boolean value, indicating whether to continue the iteration (TRUE) or abort (FALSE). - Updates about changed configuration settings are now announced in two stages: first, any registered 'apply' callbacks are used to propagate updated config items into the application. Once these are done, a second 'update' round can be used to implement follow-on changes. The difference here is that one can rely on the first phase being done, which previously wasn't the case, possibly leading to 'need to apply twice' effects. The function to use for adding such update callbacks is libnd_prefs_domain_add_udpate_cb(). ------------------------------------------------------------------------ Thu Jan 11 16:31:31 PST 2007 Christian <christian@whoop.org> - lndtool now can return error codes from plugin invocations: the run() hook now returns ints to signal such error codes. I recommend updating plugin code accordingly. Documentation updated accordingly. - Fixed some serious brain damage in the Checksum Fixer plugin. You can now actually call it via lndtool so it fixes traces you provide. ------------------------------------------------------------------------ Thu Nov 16 12:21:51 PST 2006 Christian <christian@whoop.org> This is the 0.9 release. ------------------------------------------------------------------------ Wed Nov 15 19:23:24 PST 2006 Christian <christian@whoop.org> - added constants for the size limits in the LND_Dumper API. - Comments for the LND_Dumper API. ------------------------------------------------------------------------ Thu Jun 1 14:00:03 BST 2006 Christian <christian@whoop.org> - Fix for the new libmagic code to make it build when libmagic isn't around. Thanks to Tim Furlong for sending this one. ------------------------------------------------------------------------ Wed May 3 19:53:38 BST 2006 Christian <christian@whoop.org> - Added LND_Dumper, an abstraction for pcap dumpers. It can transparently handle dumping to multiple files in case one output file becomes too large, enforce maximum file sizes, maximum total sizes, append modes, etc. Untested for now, but I'm already wondering how I managed without it so far... ------------------------------------------------------------------------ Fri Apr 28 16:43:40 BST 2006 Christian <christian@whoop.org> - libnd_packet_get_data() now returns the whole packet data when no particular protocol is asked for. - Small convenience tweaks in the TCP plugin. ------------------------------------------------------------------------ Sat Mar 25 18:08:38 GMT 2006 Christian <christian@whoop.org> - Fixed a bug in plugin initialization that could leave plugins un- registered due to sequencing of the plugins during hook-up. ------------------------------------------------------------------------ Wed Mar 22 20:06:00 GMT 2006 Christian <christian@whoop.org> - Incorporation of libmagic, if found, for easy checking of what might be contained in a chunk of data. ------------------------------------------------------------------------ Wed Mar 1 19:58:54 GMT 2006 Christian <christian@whoop.org> Beefed up autogen.sh to check for MacOS X's glibtoolize. ------------------------------------------------------------------------ Wed Feb 15 21:46:56 GMT 2006 Christian <christian@whoop.org> - Permit 0x00000000 as a valid protocol magic number. - Fixed some erroneous uses of guint64. ------------------------------------------------------------------------ Wed Feb 15 01:46:16 GMT 2006 Christian <christian@whoop.org> - Removed my libnd_packet_dump() manual workaround from a few days ago. ------------------------------------------------------------------------ Mon Jan 30 15:00:54 GMT 2006 Christian <christian@whoop.org> libnd_packet_dump() doesn't rely on pcap_dump() any more since that one doesn't return error codes. ------------------------------------------------------------------------ Tue Jan 24 17:44:29 GMT 2006 Christian <christian@whoop.org> - Packets duplicated via libnd_packet_duplicate() now do no longer belong to a trace part. This bears risks in case the cloned packets are kept around longer than the underlying trace structures. ------------------------------------------------------------------------ Tue Jan 24 13:14:47 GMT 2006 Christian <christian@whoop.org> - Added libnd_udp_get_payload_length() to the UDP protocol plugin. ------------------------------------------------------------------------ Sun Jan 15 13:49:46 GMT 2006 Christian <christian@whoop.org> This is release 0.8. ------------------------------------------------------------------------ Sat Jan 14 23:37:13 GMT 2006 Christian <christian@whoop.org> Boring cosmetics for the upcoming 0.8 release. ------------------------------------------------------------------------ Wed Dec 28 21:39:56 GMT 2005 Christian <christian@whoop.org> - Added libnd_trace_get_pcap_handle(), a quick and safe way to obtain the pcap handle that may be associated with a trace. ------------------------------------------------------------------------ Sat Dec 3 23:59:30 GMT 2005 Christian <christian@whoop.org> Hooked lnd-headerwalk into test/Makefile.am. ------------------------------------------------------------------------ Sat Dec 3 23:44:49 GMT 2005 Christian <christian@whoop.org> Added "lnd-headerwalk", a test application that for every packet in a trace prints out the sequence of protocols libnetdude manages to parse out of the packet, plus up to a configurable number of bytes of any raw uninterpreted payload. ------------------------------------------------------------------------ Thu Aug 11 21:19:07 BST 2005 Christian <christian@whoop.org> A few GCC 4 warning fixlets. ------------------------------------------------------------------------ Wed Jun 29 12:14:21 PDT 2005 Christian <christian@whoop.org> - Added string lengths to several unprotected fscanfs. Bad Christian. Thanks to Markus Waldeck for pointing out. - Debugging output tweaks. ------------------------------------------------------------------------ Wed Jun 22 16:33:13 PDT 2005 Fixed trace initialization. This was still tightly coupled to obtaining a packet's tcpdump output and caused the obvious way to use e.g. libnd_trace_new() and libnd_trace_save_as() to break. Trace file initialization is now independent of the tcpdump packet output code. Thanks to Mark Menke for reporting this bug. ------------------------------------------------------------------------ Tue May 31 13:40:15 PDT 2005 Stronger NULL pointer checking for plugin callbacks. ------------------------------------------------------------------------ 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. ------------------------------------------------------------------------