mirror of
https://github.com/zeek/zeek.git
synced 2025-10-17 14:08:20 +00:00
No description
![]() We need this to sender through Broker, and we also leverage it for cloning opaques. The serialization methods now produce Broker data instances directly, and no longer go through the binary formatter. Summary of the new API for types derived from OpaqueVal: - Add DECLARE_OPAQUE_VALUE(<class>) to the class declaration - Add IMPLEMENT_OPAQUE_VALUE(<class>) to the class' implementation file - Implement these two methods (which are declated by the 1st macro): - broker::data DoSerialize() const - bool DoUnserialize(const broker::data& data) This machinery should work correctly from dynamic plugins as well. OpaqueVal provides a default implementation of DoClone() as well that goes through serialization. Derived classes can provide a more efficient version if they want. The declaration of the "OpaqueVal" class has moved into the header file "OpaqueVal.h", along with the new serialization infrastructure. This is breaking existing code that relies on the location, but because the API is changing anyways that seems fine. This adds an internal BiF "Broker::__opaque_clone_through_serialization" that does what the name says: deep-copying an opaque by serializing, then-deserializing. That can be used to tests the new functionality from btests. Not quite done yet. TODO: - Not all tests pass yet: [ 0%] language.named-set-ctors ... failed [ 16%] language.copy-all-opaques ... failed [ 33%] language.set-type-checking ... failed [ 50%] language.table-init-container-ctors ... failed [ 66%] coverage.sphinx-zeekygen-docs ... failed [ 83%] scripts.base.frameworks.sumstats.basic-cluster ... failed (Some of the serialization may still be buggy.) - Clean up the code a bit more. |
||
---|---|---|
aux | ||
cmake@8fb99b7aa9 | ||
doc@e5422eafff | ||
man | ||
scripts | ||
src | ||
testing | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
.update-changes.cfg | ||
bro-path-dev.in | ||
CHANGES | ||
CMakeLists.txt | ||
configure | ||
COPYING | ||
INSTALL | ||
Makefile | ||
NEWS | ||
README | ||
README.rst | ||
VERSION | ||
zeek-config.h.in | ||
zeek-config.in | ||
zeek-path-dev.in | ||
zeek-wrapper.in |
============================= Zeek Network Security Monitor ============================= Zeek is a powerful framework for network analysis and security monitoring. (Zeek is the new name for the long-established Bro system. Note that parts of the system retain the "Bro" name, and it also often appears in the documentation and distributions.) Please see the INSTALL file for installation instructions and pointers for getting started. NEWS contains release notes for the current version, and CHANGES has the complete history of changes. Please see COPYING for licensing information. You can download source and binary releases on: https://www.zeek.org/download To get the current development version, clone our master git repository: git clone --recursive https://github.com/zeek/zeek For more documentation, research publications, and community contact information, please see the home page: https://www.zeek.org On behalf of the Zeek Development Team, Vern Paxson & Robin Sommer, International Computer Science Institute & Lawrence Berkeley National Laboratory vern@icir.org / robin@icir.org