zeek/aux/broccoli/ChangeLog
Robin Sommer 2b6ad76bd5 Creating a branch release/1.5 with the current 1.5.3 release code.
This is so that people working from the current stable version can
still start using git.
2011-03-09 15:26:01 -08:00

1551 lines
60 KiB
Text

Broccoli Changelog
========================================================================
Wed Mar 2 15:38:02 PST 2011 Christian <christian@whoop.org>
- Accept empty strings ("") as values in the configuration file
(Craig Leres).
- Support for specifying a separate host key for SSL-enabled operation,
with documentation update (Craig Leres).
- Version bump to 1.5.3.
------------------------------------------------------------------------
Fri Oct 9 18:42:05 PDT 2009 Christian <christian@whoop.org>
- Version bump to 1.5.
------------------------------------------------------------------------
Fri Sep 25 10:09:03 PDT 2009 Christian <christian@whoop.org>
- Bropipe fixes: set a connection class for robustness reasons;
removes some C/C++ confusion (Seth Hall).
------------------------------------------------------------------------
Mon Jun 29 17:56:00 PDT 2009 Christian <christian@whoop.org>
- SWIG bindings update.
------------------------------------------------------------------------
Mon Jun 29 15:29:35 PDT 2009 Christian <christian@whoop.org>
- Support for sending raw serialized events via the new API function
bro_event_send_raw(), with much help from Matthias Vallentin.
------------------------------------------------------------------------
Mon Jun 29 15:20:58 PDT 2009 Christian <christian@whoop.org>
- Fix for buffered data remaining in transmit buffer when calling
for_event_queue_flush().
- Added bro_conn_get_connstats() which reports statistical information
about a connection in a new dedicated structure BroConnStats. For now
this is only the amount of data buffered in the rx/tx buffers.
------------------------------------------------------------------------
Mon Jun 29 15:18:10 PDT 2009 Christian <christian@whoop.org>
- All multiprocess/-threading synchronization code has been removed.
------------------------------------------------------------------------
Mon Jun 29 15:10:59 PDT 2009 Christian <christian@whoop.org>
- Broccoli now requires initialization before any connections may be
created. The reason is twofold: (i) it provides a clean method for
initializing relevant parts of Broccoli in multithreaded environments,
and (ii) it allows configuration of parts of Broccoli where the
normal approach via configuration files is insufficient.
For details on the initialization process, refer to the manual, but
generally speaking, a call to
bro_init(NULL);
at the beginning of your application is all that is required. For the
time being, a number of high-level API calls double-check whether you
have called bro_init() previously.
- Broccoli now supports the callback functions OpenSSL requires for
thread-safe operation. Implement those callbacks as required by your
threading library, hook them into a BroCtx structure previously
initialized using bro_ctx_init(), and pass the structure to
bro_init(). This will hook the callbacks into OpenSSL for you.
O'Reilly's book "Network Security with OpenSSL" provides an example
of how to implement the callbacks.
------------------------------------------------------------------------
Thu Jun 25 16:46:37 PDT 2009 Christian <christian@whoop.org>
- Fix to Python bindings: added required bro_init() call (Matthias
Vallentin).
------------------------------------------------------------------------
Thu May 28 10:27:30 PDT 2009 Christian <christian@whoop.org>
- The BroEvMeta structure used in compact event callbacks now allows
access to the timestamp of event creation.
------------------------------------------------------------------------
Fri Mar 27 23:39:10 CET 2009 Christian <christian@whoop.org>
- Fixed a memory leak triggered by bro_event_send() but actually caused
by lack of cleanup after an underlying string duplication. Thanks to
Steve Chan and Matthias Vallentin for helpful feedback.
------------------------------------------------------------------------
Wed Mar 25 11:26:16 CET 2009 Christian <christian@whoop.org>
Formatting robustness fixes to bropipe (Steve Chan).
------------------------------------------------------------------------
Thu Feb 12 19:28:24 PST 2009 Christian <christian@whoop.org>
- Updates to contributed bropipe command (Steve Chan):
- Proper parsing of default host/port.
- Support for "urlstring" type, which urlencodes spaces in strings
and other special characters.
------------------------------------------------------------------------
Thu Dec 11 09:37:12 PST 2008 Christian <christian@whoop.org>
- Optimization: the internal slots vector of hashtables is now lazily
allocated when the first actual insertion happens. Since hashtables
are used in various places in the BroVal structures but frequently
remain empty, the savings are substantial. Thanks to Matthias
Vallentin for pointing this out.
------------------------------------------------------------------------
Mon Nov 3 11:07:49 PST 2008 Christian <christian@whoop.org>
- Fixes for I/O deadlocking problems:
- A bug in the implementation of BRO_CFLAG_YIELD has been
fixed. Input processing now only yields after the
handshake is complete on *both* endpoints.
- When events arrive during bro_conn_connect(), it could happen
that deadlock ensues if no additional data are sent and
__bro_io_process_input() can not read new input data. It no
longer returns immediately in that case, and instead attempts
to process any available input data.
------------------------------------------------------------------------
Sat Oct 4 15:05:07 CEST 2008 Christian <christian@whoop.org>
- Added bro_record_get_nth_name() to the API (Seth Hall).
- make install no longer worked for documentation, apparently as part
of Bro's make install cleanup. This isn't quite right since gtk-doc
documentation is normally installed in a well-known place and
Broccoli will normally need to be installed via "make install", but
for now I'm leaving it uninstalled and instead provide a specific
"install-docs" target for people who want documentation installed.
- Documentation updated where missing, and rebuilt.
- Copyright years updated.
------------------------------------------------------------------------
Mon Sep 22 21:34:13 CEST 2008 Christian <christian@whoop.org>
- Updated broping.bro (and broping-record.bro, slightly) to explicitly
declare the used event types ahead of their use.
------------------------------------------------------------------------
Mon Sep 8 11:30:35 CEST 2008 Christian <christian@whoop.org>
- Use of caching on received objects is now disabled by default, but can
be enabled using the new connection flag BRO_CFLAG_CACHE. The old
BRO_CFLAG_DONTCACHE is kept for backward compatibility but no longer
does anything. Keeping the caches between Bro instances and Broccoli
synchronized still needs to be implemented completely, and in the
meantime no caching is the safer default. Thanks to Stephen Chan for
helping track this down.
------------------------------------------------------------------------
Wed Jul 16 01:47:16 PDT 2008 Christian <christian@whoop.org>
- Python bindings for Broccoli are now provided in the bindings/python
subdirectory (Robin Sommer). They are not built automatically. See
the instructions in bindings/python/README for details.
- Minor documentation setup tweaks.
------------------------------------------------------------------------
Thu May 15 14:05:10 PDT 2008 Christian <christian@whoop.org>
Event callbacks of the "compact" type are now able to obtain start- and
end pointers of the currently processed event in serialized form, from
the receive buffer stored with the connection handle.
------------------------------------------------------------------------
Wed Feb 20 13:53:51 PST 2008 Christian <christian@whoop.org>
- Fix to __bro_openssl_read(), which handled some error cases
reported by BIO_read() incorrectly. (Robin Sommer)
- Clarifications to documentation of bro_conn_active() and
bro_conn_process_input().
- Version bump to 1.4.0.
------------------------------------------------------------------------
Thu Sep 13 13:56:58 PDT 2007 Christian <christian@whoop.org>
- autogen.sh now uses --force when running libtoolize, which at least
in some setups seems to be necessary to avoid bizarre build issues.
(In the particular case encountered, these looked like run-together
ar and runlib invocations). Thanks to Po-Ching Lin for helping nail
this down.
------------------------------------------------------------------------
Mon Sep 10 18:17:29 PDT 2007 Christian <christian@whoop.org>
- Broccoli now supports table and set container types. Have a look at
the bro_table_...() and bro_set_...() families of functions in
broccoli.h, the updated manual, and the updated broconn and brotable
examples in the test/ directory.
------------------------------------------------------------------------
Tue Sep 4 15:53:27 PDT 2007 Christian <christian@whoop.org>
- Major bugfix for capabilities exchange during handshake: Broccoli did
not convert into NBO, causing successful event exchange to fail. :(
Amazingly, this means disabling cache usage per Broccoli's request
never worked...
------------------------------------------------------------------------
Tue Sep 4 12:36:53 PDT 2007 Christian <christian@whoop.org>
- Changed the way compact argument passing to event callbacks works.
All event metadata is now represented by a single argument, a pointer
to a BroEvMeta structure. It contains the name of the event, the
number of arguments, and the arguments along with their types.
Updated documentation and broping demo accordingly.
NOTE: This introduces an API incompatibility. If you were previously
using the compact callback API, you will need to update your
code! I bumped up the library version info to 2:0:0 to signal
this.
- Fixed a bug in the implementation of BRO_CFLAG_YIELD and some SGML-
violating documentation of same.
------------------------------------------------------------------------
Thu Aug 16 15:24:51 CEST 2007 Christian <christian@whoop.org>
- Include autogen.sh in the distribution.
------------------------------------------------------------------------
Sat Aug 11 04:59:35 PDT 2007 Robin <robin@icir.org>
- New flag for Broccoli's connections: with BRO_CFLAG_YIELD,
bro_conn_process_input() processes at most one event at a time and then
returns (Robin Sommer).
- The new Broccoli function bro_conn_new_socket() creates a connection
from an existing socket, which can then be used with listen()/accept()
to have Broccoli listen for incoming connections (Robin Sommer).
------------------------------------------------------------------------
Fri Jul 6 18:18:05 PDT 2007 Christian <christian@whoop.org>
- Bumped up the version number to 1.3. Now that Broccoli is bundled
with Bro, it makes sense to keep Broccoli's release version number
in synch with Bro's.
- Added the automake-provided ylwrap wrapper script to the distribution.
This is for compatibility reasons: some automakes believe that
Broccoli requires ylwrap, others don't. The distcheck target however
needs ylwrap when it *is* required, so it's easiest to just provide
one. It can always be overwritten locally, should the need arise.
------------------------------------------------------------------------
Wed Mar 7 10:49:25 PST 2007 Christian <christian@whoop.org>
- Data format version number bumped up, in sync with Bro again.
------------------------------------------------------------------------
Mon Dec 4 12:07:12 PST 2006 Christian <christian@whoop.org>
- Updated broconn.c to new bro_record_get_named_val().
------------------------------------------------------------------------
Tue Nov 28 11:16:04 PST 2006 Christian <christian@whoop.org>
- Run-time type information is now also available for the values stored
in records (previously there was only type-checking, but no way to
obtain the type of the vals). See the manual and API documentation of
the functions bro_record_get_nth_val() and bro_record_get_named_val()
for details.
------------------------------------------------------------------------
Mon Nov 27 18:38:06 PST 2006 Christian <christian@whoop.org>
- Compact argument passing for event callbacks: as an alternative to the
argument passing style used so far for event callbacks (dubbed "expan-
ded"), one can now request "compressed" passing by using the
bro_event_registry_add_compact() variant. Instead of passing every
event argument as a separate pointer, compact passing provides only
the number of arguments, and a pointer to an array of BroEvArgs.
The elements of this array then provide pointers to the actual argu-
ments as well as pointers to the new BroValMeta metadata structure,
which currently contains type information about the argument.
This style is better suited for applications that don't know the type
of events they will have to handle at compile time, for example when
writing language bindings.
broping.c features example code, also see the manual for detailed
explanation.
------------------------------------------------------------------------
Mon Nov 27 16:32:52 PST 2006 Christian <christian@whoop.org>
- Bumped up version to 0.9
- I'm starting to use shared library version numbers to indicate API
changes. Their correspondence to the release version number will be
listed in VERSION.
- Fixed a warning in bro_packet.c
------------------------------------------------------------------------
Mon Nov 27 16:23:46 PST 2006 Christian <christian@whoop.org>
- Renamed cvs.pl to svn.pl
- Bumped up BRO_DATA_FORMAT_VERSION to 13, to match that of Bro trunk.
------------------------------------------------------------------------
Mon Nov 27 16:21:28 PST 2006 Christian <christian@whoop.org>
- Updating my commit script to SVN -- let's see if this works...
------------------------------------------------------------------------
Mon May 15 19:21:30 BST 2006 Christian <christian@whoop.org>
- Correction to the explanation of bro_event_registry_add(), pointed
out by Robin Sommer.
------------------------------------------------------------------------
Mon May 8 08:14:31 PDT 2006 Christian <christian@whoop.org>
- Added config.sub and config.guess versions that seem to work well with
MacOS X to the tree, to remove the dependency on the libtool/automake
versions installed on the machine where tarballs are built.
- Removed -f from libtoolize invocation in autogen.sh, so we don't
overwrite the above.
- Fixed COPYING, which wasn't actually referring to Broccoli. :)
------------------------------------------------------------------------
Sat May 6 20:17:32 BST 2006 Christian <christian@whoop.org>
- Last-minute tweaks bring last-minute brokenness, especially when
configuring without --enable-debug... :(
------------------------------------------------------------------------
Tue May 2 13:25:31 BST 2006 Christian <christian@whoop.org>
- Added generated HTML documentation to CVS, so it is guaranteed to be
included in tarballs generated via dist/distcheck, regardless of
whether GtkDoc support exists on the build system or not.
------------------------------------------------------------------------
Tue May 2 02:31:39 BST 2006 Christian <christian@whoop.org>
- Changed connection setup debugging output to state more clearly
whether an SSL or cleartext connection is attempted, as suggested
by Brian Tierney.
- New configuration item /broccoli/use_ssl to enable/disable SSL
connections, as suggested by Jason Lee. Documentation and sample
configuration in broccoli.conf updated accordingly, look at the latter
for a quick explanation.
- A bunch of small tweaks to get distcheck to work properly when invoked
from the Bro tree.
- Other doc/Makefile.am cleanups.
------------------------------------------------------------------------
Sat Apr 29 19:12:07 PDT 2006 Christian <christian@whoop.org>
- Fixed bogusness in docs/Makefile.am's dist-hook target. Should now
work much better in general, and in particular not bomb out with
non-GNU make.
------------------------------------------------------------------------
Fri Apr 7 23:52:20 BST 2006 Christian <christian@whoop.org>
- Bumped up BRO_DATA_FORMAT_VERSION to 12, to match the one in Bro's
CVS HEAD again.
------------------------------------------------------------------------
Mon Mar 27 22:59:04 BST 2006 Christian <christian@whoop.org>
- This should fix a memleak detected by Jim Mellander and reported with
a test case by Mark Dedlow.
------------------------------------------------------------------------
Fri Mar 3 16:40:56 GMT 2006 Christian <christian@whoop.org>
- Warning for invalid permissions on ~/.broccoli.conf has been upgraded
from debugging output to stderr, per request from Mark Dedlow.
- Only check validity of config file name assembled via getenv("HOME")
if it yields a filename different from the one assembled via the
passwd entry.
------------------------------------------------------------------------
Thu Mar 2 17:57:49 GMT 2006 Christian <christian@whoop.org>
- Reintroducing file needed for distcheck.
------------------------------------------------------------------------
Thu Mar 2 16:27:55 GMT 2006 Christian <christian@whoop.org>
- Debugging fixlet.
------------------------------------------------------------------------
Fri Feb 3 20:31:08 GMT 2006 Christian <christian@whoop.org>
- Embarrassing debugging output fixes.
------------------------------------------------------------------------
Fri Jan 27 23:40:23 GMT 2006 Christian <christian@whoop.org>
- Only do lock operations when there's any need for them.
------------------------------------------------------------------------
Fri Jan 27 18:30:06 GMT 2006 Christian <christian@whoop.org>
I am *so* fired. Overlooked a very clear warning that bro_io.c:lock()
wasn't returning a value.
------------------------------------------------------------------------
Wed Jan 18 10:45:33 GMT 2006 Christian <christian@whoop.org>
- Fixed call trace debugging inconsistencies, this will hopefully fix a
case of runaway call trace indentation depth that Robin + Stefan have
bumped into.
------------------------------------------------------------------------
Wed Jan 4 16:21:07 GMT 2006 Christian <christian@whoop.org>
- Documentation fixlet, pointed out by Stefan Kornexl.
------------------------------------------------------------------------
Thu Dec 22 00:48:20 GMT 2005 Christian <christian@whoop.org>
- Attempt at a more portable detecting of [g]libtoolize. Let me know if
this works any better.
------------------------------------------------------------------------
Mon Dec 19 17:48:19 PST 2005 Christian <christian@whoop.org>
- Moved brosendpkts.c and rcvpackets.bro from test/ to contrib/, i.e.,
out of the default build process. brosendpkts.c defines variables in
the middle of main(), which some compilers tolerate while others
don't. This should fix build issues reported by Brian Tierney.
------------------------------------------------------------------------
Thu Dec 15 18:38:18 GMT 2005 Christian <christian@whoop.org>
Configuration tweaks to run smoothly when invoked from a Bro build.
- Added AC_CONFIG_AUX_DIR(.) to make sure things are exclusively run
out of our tree.
- Added flags to autogen.sh and configure.in to indicate that we're
part of a Bro build.
------------------------------------------------------------------------
Fri Dec 2 14:04:05 GMT 2005 Christian <christian@whoop.org>
- Removed EXTRA_DIST for the test app policies, since they are included
in the tarball and installed anyway via pkgdata_DATA.
------------------------------------------------------------------------
Fri Dec 2 13:59:27 GMT 2005 Christian <christian@whoop.org>
- Added "brosendpkts", a test program for sending pcap packets to a Bro,
plus the accompanying Bro policy. Contributed by Stefan Kornexl and
Robin Sommer, with a tiny tweak to build only when pcap support is
available.
------------------------------------------------------------------------
Wed Nov 23 11:59:03 PST 2005 Christian <christian@whoop.org>
- Avoided the keyword "class" to prevent problems with using broccoli.h
in a C++ context. Pointed out by Stefan Kornexl.
------------------------------------------------------------------------
Tue Nov 8 14:10:23 PST 2005 Christian <christian@whoop.org>
- Added support for connection classes, updated documentation.
------------------------------------------------------------------------
Mon Oct 31 19:37:55 PST 2005 Christian <christian@whoop.org>
- Support for specifying type names along with values. This is done
through a new and optional argument to bro_event_add_val(), bro_
record_add_val(), and friends. See manual for details.
- Added a test program "broenum" for demonstrating this. When running
Bro with the provided broenum.bro policy, it sends a single event with
an enum val to the remote Bro, which will print both numerical and
string representations of the value. For example, broenum.bro defines
an enum type
type enumtype: enum { ENUM1, ENUM2, ENUM3, ENUM4 };
Given this,
$ broenum -n 0 yields Received enum val 0/ENUM1
$ broenum -n 1 yields Received enum val 1/ENUM2
$ broenum -n 4 yields Received enum val 4/<undefined>
You can also test predefined enums:
$ broenum -t transport_proto -n 1
yields
Received enum val 1/tcp
------------------------------------------------------------------------
Mon Oct 31 17:07:15 PST 2005 Christian <christian@whoop.org>
Changed commit script to pass the commit message through the generated
file via -F, instead of via -m and the command line. D'oh.
------------------------------------------------------------------------
Mon Oct 31 17:03:47 PST 2005 Christian <christian@whoop.org>
- Support for the new abbreviated serialization format for types. Need
to come up with a decent API for actually using this feature now.
------------------------------------------------------------------------
Mon Oct 31 11:25:22 PST 2005 Christian <christian@whoop.org>
Several changes to handshake implementation and API(!).
- Refactored the handshake code to make the multiple phases of the
connection's initialization phase more explicit. Our own and the peer's
handshake state are now tracked separately. conn_init_configure() takes
care of our state machine with a separate function per phase, and
__bro_io_process_input() handles the peer's state.
- Added support for capabilities. The only capability Broccoli currently
supports is a non-capability: it can ask the remote Bro not to use the
serialization cache. In order to do so, pass BRO_CONN_DONTCACHE as
a connection flag when obtaining the connection handle. Needs more
testing.
- Several API changes. Given the more complex handshake procedure that
is in place now, the old approach of only completing the handshake half-
way in bro_connect() so the user can requests before calling
bro_conn_await_handshake() (or alternatively, passing
BRO_CONN_COMPLETE_HANDSHAKE as a connection flag) is just too messy now.
The two steps of obtaining a connection handle and establishing a
connection have been split into separate functions, so the user can
register event handlers in between.
What was
BroConn *bc = bro_connect(..., BRO_CFLAGS_NONE);
bro_event_registry_add(bc,...);
bro_event_registry_add(bc,...);
bro_event_registry_request(bc);
bro_conn_await_handshake(bc);
/* ... */
bro_disconnect(bc);
is now
BroConn *bc = bro_conn_new(..., BRO_CFLAGS_NONE);
bro_event_registry_add(bc,...);
bro_event_registry_add(bc,...);
bro_conn_connect(bc);
/* ... */
bro_conn_delete(bc);
Note that the explicit call to bro_event_registry_request() is gone as
bro_conn_connect() will automatically request event types for which
handlers have been installed via bro_event_registry_add(). What was
BroConn *bc = bro_connect(..., BRO_CFLAGS_COMPLETE_HANDSHAKE);
bro_disconnect(bc);
is now
BroConn *bc = bro_conn_new(..., BRO_CFLAGS_NONE);
bro_conn_connect(bc);
/* ... */
bro_conn_delete(bc);
I might add bro_conn_disconnect() in the near future. It'd allow us
to keep a completely configured connection handle around and use it
repeatedly for establishing connections.
Sorry for the inconvenience but I really think this is a lot nicer than
the old API. The examples and documentation have been updated accor-
dingly.
------------------------------------------------------------------------
Sat Oct 29 15:43:18 PDT 2005 Christian <christian@whoop.org>
Added an optional age list to the hash table implementation. We'll
need this to duplicate Bro's object serialization caching strategy.
------------------------------------------------------------------------
Fri Oct 28 15:26:55 PDT 2005 Christian <christian@whoop.org>
Brothers and sisters, hallelujah! On the 27th day Christian looked at
record vals in the Broccoli, and he saw that it was leaking like a
sieve. So Christian ran the valgrind. On the 28th day Christian still
looked at Broccoli, with tired eyes, ground the vals[1] a bit more,
and he saw that it was plugged[2].
Amen. :)
[1] Really really bad pun. Sorry.
[2] I get zero memleaks on broping -r -c 100 now. :)
------------------------------------------------------------------------
Thu Oct 27 20:02:39 PDT 2005 Christian <christian@whoop.org>
First crack at reference-counted sobjects. I need reference counting
in order to get rid of objects in the serialization cache (since they
can contain nested objects etc -- it's nasty), which I had ignored so
far. There are still leaks in the event transmission code, dammit. :(
------------------------------------------------------------------------
Thu Oct 27 15:06:10 PDT 2005 Christian <christian@whoop.org>
Added my own list implementation due to suckiness of the TAILQ_xxx
macro stuff which I never liked anyway. The problem is that elements
of lists built using these macros can only have each member exactly
once as the prev/next pointers are part of the structs.
A few uses of TAILQ_xxx remain, these will go in the near future.
------------------------------------------------------------------------
Tue Oct 25 19:57:42 PDT 2005 Christian <christian@whoop.org>
Partial support for enum vals, per request from Weidong. Sending enum
vals should work, though the underlying enum types aren't fully handled
yet.
------------------------------------------------------------------------
Mon Oct 24 16:31:56 PDT 2005 Christian <christian@whoop.org>
TODO item: clean up generated parser/lexer files when we know we can
regenerate them. make clean currently does not erase them, which caused
Weidong some trouble.
------------------------------------------------------------------------
Fri Oct 21 17:48:51 PDT 2005 Christian <christian@whoop.org>
Clarification to the manual, after a question from Weidong.
------------------------------------------------------------------------
Fri Oct 14 18:05:39 PDT 2005 Christian <christian@whoop.org>
Transparent reconnects should work again (took all *day*, argh -- I
totally broke it with the connection sharing stuff). Try broping while
occasionally stopping and restarting the Bro side.
Fixed a number of memleaks -- broping is now leak-free according to
valgrind.
Clarifications in the debugging output.
------------------------------------------------------------------------
Fri Oct 14 12:07:10 PDT 2005 Christian <christian@whoop.org>
Added documentation for the new user data argument to
bro_event_registry_add().
------------------------------------------------------------------------
Fri Oct 14 11:48:00 PDT 2005 Christian <christian@whoop.org>
Added user data to event handler callbacks. This is necessary for
example when using class members in C++ as callbacks since the object
needs to be provided at the time of dereferencing. It's also easier to
use than the existing bro_conn_{set,get}_data() mechanism.
Updated documentation with more details on the broccoli-config script.
------------------------------------------------------------------------
Thu Oct 13 15:08:56 PDT 2005 Christian <christian@whoop.org>
When supporting packets (the default), check whether pcap.h actually
exists. This has thus far just been assumed. We don't actually use
the library, so there's no need to test for it.
------------------------------------------------------------------------
Mon Oct 10 20:37:15 PDT 2005 Christian <christian@whoop.org>
Changed bro_record_get_named_val() and bro_record_get_nth_val() to
return a pointer to the queried value directly, instead of through
a pointer argument. These arguments' type used to be void* though it
should really be void**, but switching to void** causes lots of warnings
with current GCCs ('dereferencing type-punned pointer will break
strict-aliasing rules'). NULL is perfectly usable as an error indicator
here, and thus used from now on. Updated manual, broping, and broconn
accordingly.
------------------------------------------------------------------------
Tue Sep 20 17:19:58 PDT 2005 Christian <christian@whoop.org>
Fixed a varargs buglet that is tolerated on Linux but not BSD. Pointed
out by Scott Campbell.
------------------------------------------------------------------------
Fri Sep 9 18:48:54 PDT 2005 Christian <christian@whoop.org>
Support for textual tags on packets, also an upgrade to more complex
handshake procedure that allows for synchronization of state (Robin
Sommer).
Note: as of this change, at least Bro 1.0a2 is required.
------------------------------------------------------------------------
Wed Aug 10 01:36:47 BST 2005 Christian <christian@whoop.org>
Fixed my insecure usage of snprintf.
------------------------------------------------------------------------
Tue Jul 19 10:11:49 PDT 2005 Christian <christian@whoop.org>
Forgot to include broconn's policy file in the distribution.
------------------------------------------------------------------------
Mon Jul 18 16:34:22 PDT 2005 Christian <christian@whoop.org>
Fixed a bug that caused the lookup of record fields by name to fail.
------------------------------------------------------------------------
Fri Jul 1 00:44:49 BST 2005 Christian <christian@whoop.org>
The sequence of tests determining which config file to read from
failed to fall back properly to the global config file in case of
incorrect user permissions. Fixed.
------------------------------------------------------------------------
Mon Jun 27 19:34:56 PDT 2005 Christian <christian@whoop.org>
Added bro_buf_reset() to the user-visible API.
------------------------------------------------------------------------
Mon Jun 27 17:58:53 PDT 2005 Christian <christian@whoop.org>
When a configuration item cannot be found in the current config file
section, a lookup is also attempted in the default section (the one
at the top of the file, before any sections are defined). This allows
the sections to override the default section, which is what one would
expect.
------------------------------------------------------------------------
Mon Jun 27 14:43:56 PDT 2005 Christian <christian@whoop.org>
Debugging output tweak. When providing the SSL cert passphrase via
the config file, do no longer report it in the debugging output.
------------------------------------------------------------------------
Mon Jun 27 12:33:52 PDT 2005 Christian <christian@whoop.org>
Cosmetics in the debugging output of __bro_openssl_write().
------------------------------------------------------------------------
Fri Jun 24 18:13:49 PDT 2005 Christian <christian@whoop.org>
Added --build flag to broccoli-config. It reports various details
about the build, for example whether debugging support was compiled in.
------------------------------------------------------------------------
Fri Jun 24 10:37:23 PDT 2005 Christian <christian@whoop.org>
I'm adding a little test app that subscribes to a few connection
events and prints out the fields of the received connection records,
both for testing and code demonstration purposes. So far it has
highlighted a bug in Bro that occurs when a remote app is a pure
requester of events and not sending anything. Fix pending.
------------------------------------------------------------------------
Mon Jun 20 18:21:24 PDT 2005 Christian <christian@whoop.org>
Show the names of requested events in the debugging output -- it
had to be deciphered from the hex string which isn't that much fun.
------------------------------------------------------------------------
Thu Jun 16 14:02:59 PDT 2005 Christian <christian@whoop.org>
Better documentation of how to extract record fields.
------------------------------------------------------------------------
Thu Jun 16 11:51:02 PDT 2005 Christian <christian@whoop.org>
- Added bro_string_get_data() and bro_string_get_length() to avoid
making people access BroString's internal fields directly.
- Moved BroString's internal storage format to uchar*.
------------------------------------------------------------------------
Sun Jun 12 19:17:31 PDT 2005 Christian <christian@whoop.org>
Debugging output now shows the correct function and line numbers again.
I had accidentially moved __FUNCTION__ and __LINE__ into bro_debug.c :(
------------------------------------------------------------------------
Fri Jun 3 15:00:48 PDT 2005 Christian <christian@whoop.org>
I broke the sanity checks for semaphore initialization when I moved
the semaphore structures to shared memory. Fixed.
------------------------------------------------------------------------
Mon May 16 22:25:41 PDT 2005 Christian <christian@whoop.org>
- Debugging output now goes to stderr instead of stdout. That keeps it
out of the way if an instrumented app dups() stdout to another file
descriptor.
- Debugging output is now disabled by default (even when compiled in),
so it needs to be enabled explicitly in the code or in the config file.
------------------------------------------------------------------------
Fri May 13 18:24:23 PDT 2005 Christian <christian@whoop.org>
Synchronization fixes and minor cleanups.
- Unsuccessful connection attempts to remote Bros in combination with
connection sharing caused the caller to hang indefinitely. This should
now be fixed, but required some fairly intricate tweaks to the locking
constructs. Still needs more testing.
- Bumped version to 0.8.
------------------------------------------------------------------------
Fri May 6 23:09:29 BST 2005 Christian <christian@whoop.org>
This is the 0.7.1 release.
------------------------------------------------------------------------
Fri May 6 14:44:53 PDT 2005 Christian <christian@whoop.org>
Documentation for shareable connection handles.
------------------------------------------------------------------------
Fri May 6 12:11:17 PDT 2005 Christian <christian@whoop.org>
Build fixlets.
- Don't only test for the first of the documentation extraction tools,
but also for those used later on.
- Few more signedness warnings fixed.
------------------------------------------------------------------------
Wed May 4 18:33:40 PDT 2005 Christian <christian@whoop.org>
Fixed a whole bunch of signedness warnings reported by gcc 4 on MacOS
10.4. Thanks to Roger for the quick reply.
------------------------------------------------------------------------
Wed May 4 17:41:40 PDT 2005 Christian <christian@whoop.org>
Fix for a little-endian bug that I managed to introduce when testing on
Solaris ... *sigh* :(
------------------------------------------------------------------------
Wed May 4 17:30:07 PDT 2005 Christian <christian@whoop.org>
A number of portability fixes after testing the build on Linux, FreeBSD
and Solaris.
------------------------------------------------------------------------
Mon May 2 20:17:04 PDT 2005 Christian <christian@whoop.org>
Fixed an obvious bug the config file parser. I'm baffled as to how it
could go unnoticed for so long.
------------------------------------------------------------------------
Mon May 2 20:11:25 PDT 2005 Christian <christian@whoop.org>
Portability fixes.
- Use -pthread (not -lpthread) in both the --cflags and --libs options
to broccoli-config, if required. -lpthread does not work on BSDs, where
-pthread has different effects on the linker.
- s/System V/SYSV/ in configure script output for consistency.
- Bumped version to 0.7.1.
It should build correctly on BSDs and Linux now. Still need to check
whether synchronization actually works on the BSDs.
------------------------------------------------------------------------
Fri Apr 29 23:12:01 BST 2005 Christian <christian@whoop.org>
If the configure script determines we need -lpthread, it's a good idea
to actually reflect that in broccoli-config.
------------------------------------------------------------------------
Fri Apr 29 22:36:26 BST 2005 Christian <christian@whoop.org>
Fix for SYSV semaphores pointed out by Craig Leres -- I completely
forgot to test the SYSV stuff before the release. *sigh*.
------------------------------------------------------------------------
Thu Apr 28 13:46:57 BST 2005 Christian <christian@whoop.org>
- This is the 0.7 release.
------------------------------------------------------------------------
Thu Apr 28 13:43:44 BST 2005 Christian <christian@whoop.org>
RPM spec file fixlet.
------------------------------------------------------------------------
Wed Apr 27 18:04:57 BST 2005 Christian <christian@whoop.org>
Preparations for the 0.7 release.
------------------------------------------------------------------------
Wed Mar 16 18:34:27 GMT 2005 Christian <christian@whoop.org>
I think shared connections w/ SSL work. :) They key aspects are
- We want to be able to use a single connection handle in arbitrary
process/thread scenarios: in sshd, a single handle created in the
listening process should work in all forked children (right now I'm
created separate ones in each child, yuck), in Apache it should work
in all servicing threads (creating a separate connection in each
servicing thread would be far too costly), etc.
- However, all SSL I/O on a single BIO must happen in the same *thread*
according to openssl-users -- same process seems intuitive because of
cipher streams etc; why it's per thread I don't know.
The approach is now as follows: when a connection handle is marked as
shareable, an I/O handler process is forked off during handle setup
that processes all I/O for a single connection handle exclusively.
Data are processed through separate tx/rx buffers that live in shared
memory and are protected by semaphores. Additionally, a number of
fields in the connection handle also live in shared memory so can be
used to send back and forth messages etc. By using global semaphores as
condition variables, rx/tx requests are dispatched to the I/O handler
process. Therefore this should work for all multi-process/thread
scenarios in which processes/threads are created after the connection
handle is set up.
This all is transparent when a connection is not marked shareable. The
main optimization left to do now is to make the locking more fine-
grained -- a throughput comparison is going to be interesting...
I haven't tried transparent reconnects again; I'd presume I managed
to break them in the process.
------------------------------------------------------------------------
Mon Mar 14 17:31:17 GMT 2005 Christian <christian@whoop.org>
- Lots of work on shared connection handles. This is going to take a
while to work robustly. For now steer clear of BRO_CFLAG_SHAREABLE.
- Fixed wrong ordering of semaphore locks in __bro_io_msg_queue_flush().
- The connection hack to work around OpenSSL's 'temporary unavailable'
beliefs is now only used when the problem occurs, namely during
reconnects.
- Fixed a bug in the Posix version of __bro_sem_new() that prevented
processes from creating more than one different semaphores. Doh.
- Bumped BRO_DATA_FORMAT_VERSION to 9, to sync up with Bro tree.
- Added __bro_sem_get(), returning the current value of a sempahore,
with implementations for Posix + SYSV.
- Lots of calltracing added.
------------------------------------------------------------------------
Mon Mar 14 10:24:54 GMT 2005 Christian <christian@whoop.org>
Code for shared connection handles with SSL enabled. Pretty much done,
but needs a lot of testing now.
------------------------------------------------------------------------
Sat Mar 12 18:13:58 GMT 2005 Christian <christian@whoop.org>
Beginning of support for sharing connection handles for SSL-enabled
connections. Since supporting this is complex, it will be optional,
and enabled by using the new BRO_CFLAG_SHAREABLE connection flag.
------------------------------------------------------------------------
Fri Mar 11 14:50:23 GMT 2005 Christian <christian@whoop.org>
Move to AC_PROG_LIBTOOL.
------------------------------------------------------------------------
Fri Mar 11 14:33:57 GMT 2005 Christian <christian@whoop.org>
Portability and robustness fixes.
- auto* calls in autgen.sh are now checked for success and cause the
script to abort on error.
- Instead of trying to figure out what libraries the various OSs need
in order to be able to use Posix semaphors, I'm now attempting to use
the -pthread flag directly. If that fails, we just fall back to SYSV
semaphores.
- All semaphore + shmem implementations are now included in the tarball,
the point is to include them selectively in the *build*.
- Stevens' ifdef magic for union semun doesn't work on at least OpenBSD
so I'm using the BSD_HOST macro from config.h now.
- Apparently AM_PROG_LIBTOOL causes some people trouble so we need to
check how to get that working realiably :(
------------------------------------------------------------------------
Mon Feb 21 14:45:51 GMT 2005 Christian <christian@whoop.org>
- Partial-write bugfix. When we succeed only partially in writing out
a message, report success, not failure. Failure is handled by queuing
the message for later transmission, but we have already sent it
partially and the rest is still stuck in the output buffer, so if we
queue it again, it'll get sent at least twice.
I had noticed that out of 100000 events sent by 100 processes in
parallel, typically around 100020 arrived :)
------------------------------------------------------------------------
Sat Feb 19 21:04:46 GMT 2005 Christian <christian@whoop.org>
- Lots of synchronization work. This generally seems to work now! :) It
required one major addition: support for shared memory. The problem is
that if multiple threads/processes attempt to write at the same time
and one write succeeds only partially, then *whichever* thread/process
gets to write next needs to write out the rest before writing any new
messages. The only alternative is to have write operations block until
entire messages are sent, which seems dangerous from an instrumentation
point of view. To share the remaining message data, shared memory is
required: both the tx and rx buffers now operate in shared memory and
are protected by semaphores. The current implementation uses SYSV shared
memory.
I think shared memory is a good idea in general; for example it could be
used during instrumentation to get information from one corner of an app
to another without changing the application's structure. I don't think
we'll need this right away, but it's nice to have a possible technique
for it.
- bro_disconnect() is now more tricky to use than before: if you use
it in a parallel setting, you *must* call it from the same process that
called bro_connect() and you must do so *after* all the other processes
have finished using the connection (typically this is not hard to do, so
I think we can live with that).
The reason is that semaphores + shared memory need to be uninstalled
specifically and I haven't yet figured out a way to automate reference
counting so that the last thread/process using a connection could do
this automatically. It would be very cool if the functions that are
used for deinstallation could be asked to fail while the IPC objects are
still in use, but that's not the case.
- You can still build the whole thing without semaphores or shared mem
and it'll work for single-threaded apps. The configure script now issues
a warning if not all tools required for stable parallel operation can be
found.
- Added bro_event_queue_length_max() to allow applications to find out
the maximum queue length before messages will get dropped. brohose uses
this to wait until the queue gets half full before insisting on a flush.
------------------------------------------------------------------------
Fri Feb 18 17:14:40 GMT 2005 Christian <christian@whoop.org>
- SYSV semaphore implementation. Configure checks are included
and work as follows: if both Posix + SYSV semaphores are found,
Posix are preferred, however the user can override this by passing
--disable-posix-semaphores. Semaphores are still not actually used.
------------------------------------------------------------------------
Thu Feb 17 22:24:12 GMT 2005 Christian <christian@whoop.org>
- First shot at semaphore support. Checking for Posix named semaphores
and making sure they actually work at configure time was the hardest
part; actual semaphore code untested and still unused. No ifdefs
anywhere :)
------------------------------------------------------------------------
Thu Feb 17 20:06:00 GMT 2005 Christian <christian@whoop.org>
- Incompletely sent chunks are now recognized and remaining parts are
shipped as soon as possible: repeated brohose -n 1 -e 1000 runs do not
take out Bro any more. :)
------------------------------------------------------------------------
Thu Feb 17 19:21:15 GMT 2005 Christian <christian@whoop.org>
- Added "brohose", which lets you hose a Bro with events by forking a
configurable number of processes, and having each process pump out an
event a configurable number of times as fast as possible. This is meant
as both a stress-testing tool for the protocol as well as obviously for
the synchronization stuff that'll go into Broccoli soon.
------------------------------------------------------------------------
Wed Feb 16 17:40:47 GMT 2005 Christian <christian@whoop.org>
- Documentation for the configuration options for debugging output.
------------------------------------------------------------------------
Thu Feb 10 11:39:57 GMT 2005 Christian <christian@whoop.org>
- Changed bro_event_queue_empty() to bro_event_queue_length(),
which is more useful in general and can be used to find out
whether the queue is empty, too.
------------------------------------------------------------------------
Tue Feb 8 14:45:58 GMT 2005 Christian <christian@whoop.org>
- This is release 0.6.
------------------------------------------------------------------------
Mon Feb 7 14:54:15 GMT 2005 Christian <christian@whoop.org>
- Additional byte swaps for IP addresses + subnets for compatibility
with Bro.
------------------------------------------------------------------------
Sun Feb 6 23:55:07 GMT 2005 Christian <christian@whoop.org>
- Debugging output can now be configured from the config file,
using the /broccoli/debug_messages and /broccoli/debug_calltrace
config items.
------------------------------------------------------------------------
Tue Feb 1 21:34:17 GMT 2005 Christian <christian@whoop.org>
- During handshake, data format compatibility is now confirmed as well
as matching protocol version.
------------------------------------------------------------------------
Tue Feb 1 21:04:43 GMT 2005 Christian <christian@whoop.org>
- Initial commit of support for sending/receiving libpcap packets.
Totally untested, and not documented yet. More on this once support
for packets is committed into the Bro tree.
------------------------------------------------------------------------
Tue Feb 1 18:39:02 GMT 2005 Christian <christian@whoop.org>
- Transparent reconnects now also work for non-SSL connections. I was
just lucky that the SSL handshake prevented the same problem from
occurring in the SSL-enabled case. Two fixes were necessary:
1) a separate attempt to connect to the peer that I have full control
over, and
2) a fixlet in queue management that caused the event that
triggers the reconnect to be sent before any handshake information
for the new connection, thus causing a connection teardown by the
Bro end because the version number was not seen at the right time.
------------------------------------------------------------------------
Mon Jan 31 19:38:36 GMT 2005 Christian <christian@whoop.org>
- Fixed a few spots where D_ENTER was not balanced with D_RETURN
- Added an int-to-string table for message types, for debugging
- Added a flag to the connection structure that prevents reconnect
attempts while one is already in progress
- Made io_msg_queue() private to bro_io.c because it was only called
from there.
------------------------------------------------------------------------
Fri Jan 28 12:35:03 GMT 2005 Christian <christian@whoop.org>
- Changed the error semantics of in __bro_io_msg_queue() so that queuing
a message after failure to send is not a failure. This fixes an issue
with handshake completion that I have observed with broping across
different machines, where events could still get lost despite explicit
request to complete the handshake.
------------------------------------------------------------------------
Sun Jan 16 20:45:42 GMT 2005 Christian <christian@whoop.org>
- Serialization/Unserialization for ports fixed, support for ICMP ports.
------------------------------------------------------------------------
Sat Jan 15 13:58:16 GMT 2005 Christian <christian@whoop.org>
- Sending and receiving IP addresses and subnets was broken, fixed now.
- Fixed a small memleak when first-time connection setup fails.
------------------------------------------------------------------------
Thu Jan 13 21:03:45 GMT 2005 Christian <christian@whoop.org>
- When using reconnects, Broccoli will now not attempt to reconnect
more than once every 5s.
------------------------------------------------------------------------
Thu Jan 13 20:43:13 GMT 2005 Christian <christian@whoop.org>
- Added connection flag BRO_CFLAG_ALWAYS_QUEUE that causes events
always to be queued in the connection's event queue regardless of
whether the peer is currently dead or not.
- Moved the test of whether the peer requested an event that is
about to be sent or not to the point where the event actually is
about to be sent, from the point where it is requested to be sent.
The difference is that now an event will get silently dropped on
the floor if after a connection outage and a reconnect, a change
in the events requested from the peer will prevent the old queued
events to be sent anyway, even if they are no longer requested.
------------------------------------------------------------------------
Wed Jan 12 20:46:10 GMT 2005 Christian <christian@whoop.org>
- Added support for transparent reconnects for broken connections.
When using BRO_CFLAG_RECONNECT, Broccoli now attempts to reconnect
whenever a peer died and the user tries to read from or write to
the peer. This can aways be triggered manually using
bro_reconnect().
- Added bro_conn_alive() to determine if a connection is currently
alive or not.
------------------------------------------------------------------------
Tue Jan 11 17:33:51 GMT 2005 Christian <christian@whoop.org>
- Added connection flags parameter to bro_connect() and
bro_connect_str(): BRO_CFLAG_COMPLETE_HANDSHAKE completes
the handshake right away before returning from bro_connect()/
bro_connect_str(), and BRO_CFLAG_RECONNECT still needs to be
implemented. Documentation updated accordingly.
------------------------------------------------------------------------
Sat Jan 8 21:07:30 CET 2005 Christian <christian@whoop.org>
- Allow empty (or comments-only) configuration files.
------------------------------------------------------------------------
Sat Jan 8 20:52:56 CET 2005 Christian <christian@whoop.org>
- Fixed the home directory lookup via getpwent() -- now correctly looks
up the entry of the current effective user. Doh.
- Beginning of code for connection flags to use when creating a
connection, for example for handshake behaviour, automatic reconnection
attempts, etc.
------------------------------------------------------------------------
Tue Jan 4 23:28:59 CET 2005 Christian <christian@whoop.org>
- constness fixes for functions that accept values for events and
record fields.
------------------------------------------------------------------------
Tue Jan 4 22:07:35 CET 2005 Christian <christian@whoop.org>
- Encrpyted connections now extract as much data as possible from
the underlying buffer by calling BIO_read() optimistically.
- For encrypted connections, the passphrase for the certificate's
private key can now be specified in the configuration file using key
"/broccoli/host_pass".
- Added support for the handshake message in the Bro protocol.
- If the ca_cert or host_cert keys are found in the config file, but
there is a problem loading the crypto files, don't attempt to connect.
- Completed documentation on encrypted communication, explaining the
use of ca-create and ca-issue.
- Fixed several bugs in the handling of sections in config files.
Matching of domain names is now case-insensitive.
- The ~/.broccoli.conf file is now only used when it is readable only
by the user owning it.
- More robustness for corner cases of buffer sizes.
- Fixed a bug in sending messages that consist of only a single chunk
(like the handshake message).
- The library now attempts to initialize the random number generator
in OpenSSL from /dev/random if possible.
------------------------------------------------------------------------
Fri Dec 24 11:58:08 CET 2004 Christian <christian@whoop.org>
- If the ca_cert or host_cert keys are found in the config file, but
there is a problem loading the crypto files, don't attempt to connect.
- Completed documentation on encrypted communication, explaining the
use of ca-create and ca-issue.
- Fixed several bugs in the handling of sections in config files.
------------------------------------------------------------------------
Thu Dec 23 14:33:56 GMT 2004 Christian <christian@whoop.org>
- Added sections support for configuration files. Sections can be
declared at arbitrary points in the config file, using the same syntax
as in OpenSSL config files. There can be a global section at the
beginning of the file, before the first declared sections. Sections are
selected using bro_conf_set_domain().
- Support for a per-user config file in ~/.broccoli.conf. This does
not override settings in the global config file but completely replaces
it, i.e., when the user-specific file is found, the global one is
ignored.
- Added bro_conn_await_handshake() that blocks for limitable amount of
time, waiting for the handshake of a new Bro connection to complete.
This still needs some fixing, but is definitely necessary to prevent
weird races from occurring when a client tries to use a new connection
that has not yet been established completely.
- Test applications are now linked to static libraries. This will
hopefully keep the build more portable.
- Use of LFLAGS and YFLAGS moved to AM_LFLAGS and AM_YFLAGS, given the
warnings issued when using automake 1.9.
- First shot at fixing the buffer flushing issues I see when using
encrypted connections.
------------------------------------------------------------------------
Fri Dec 10 16:31:26 GMT 2004 Christian <christian@whoop.org>
- Added + fixed OpenSSL code to support encrypted communication.
- Added OpenSSL as requirement to spec file.
- Changed broping policies to always use the same port
- Updated broccoli.conf: added keys for the CA's and the host's cert.
------------------------------------------------------------------------
Thu Dec 9 14:59:24 GMT 2004 Christian <christian@whoop.org>
- Build fixes in case documentation tools are not found
- Documentation polishing -- only SSL setup section todo still.
------------------------------------------------------------------------
Thu Dec 9 00:48:05 GMT 2004 Christian <christian@whoop.org>
- Final documentation passes for the 0.6 release.
------------------------------------------------------------------------
Mon Dec 6 17:18:55 GMT 2004 Christian <christian@whoop.org>
- More documentation, explaining the data types, records, Bro policy
configuration, started section on SSL setup (copied from Robin right
now), and minor fixes.
------------------------------------------------------------------------
Mon Dec 6 15:17:05 GMT 2004 Christian <christian@whoop.org>
- Added spec file for building RPMs -- seems to work
- Aest policies are now installed in $prefix/share/broccoli
------------------------------------------------------------------------
Mon Dec 6 00:22:02 GMT 2004 Christian <christian@whoop.org>
- Dropped the ..._raw() functions for records. These won't be used
internally ever. Their implementation moved to bro.c, and only the high-
level code remained in bro_record.c.
- Added bro_event_set_val() to replace a val in an existing event.
There's not much use in resending an existing event unless it is
identical, which is not that useful. High-level code is in
__bro_event_set_val().
- Made it more clear in the comments explaining the
bro_record_get_..._val() functions that the "result" argument must
actually be the address of a pointer. (void * as argument type means
that the compiler does not issue a warning when passing in, say, a
double * -- but it would do so if we would use void **.)
------------------------------------------------------------------------
Sun Dec 5 22:05:53 GMT 2004 Christian <christian@whoop.org>
- Updates to the cvs wrapper script: surround with date and name
only in the ChangeLog, not in the commit message itself.
------------------------------------------------------------------------
Sun Dec 5 02:15:29 GMT 2004 Christian <christian@whoop.org>
- Fixed a bug in __bro_val_clone(): forgot to handle BRO_INTTYPE_OTHER.
- Changed --enable-debugging flag to --enable-debug, for consistency
with the Bro tree.
- Fixed bugs in several cloning implementations that didn't call the
parent's implementation.
------------------------------------------------------------------------
Sun Dec 5 01:40:52 GMT 2004 Christian <christian@whoop.org>
- Added __bro_event_copy() to clone events internally.
- Events are now duplicated in __bro_io_event_queue() before they're
sent so the user's event remains unaffected (and thus could be sent
repeatedly etc).
- Extensive pass over the documentation; still a good deal to do.
------------------------------------------------------------------------
Sat Dec 4 03:09:05 GMT 2004 Christian <christian@whoop.org>
More work on documentation, much is outdated now.
------------------------------------------------------------------------
Sat Dec 4 02:05:30 GMT 2004 Christian <christian@whoop.org>
- Started a ChangeLog. No detailed ChangeLog information was kept
previous to this commit.
------------------------------------------------------------------------