mirror of https://github.com/OISF/suricata
doc/devguide: document eve callback
Document the callback for adding additional data to EVE. Ticket: #4708pull/14238/head
parent
9fffc09ad7
commit
cdd4ea0f11
@ -0,0 +1,43 @@
|
||||
EVE Hooks
|
||||
#########
|
||||
|
||||
The EVE output provides a callback for additional data to be added to
|
||||
an EVE record before it is written.
|
||||
|
||||
It is important to note that it does not allow for modification of the
|
||||
EVE record due to the append only nature of Suricata's EVE output.
|
||||
|
||||
Registration
|
||||
************
|
||||
|
||||
Registering the callback is done with ``SCEveRegisterCallback``.
|
||||
|
||||
.. literalinclude:: ../../../../../src/output-eve.h
|
||||
:language: c
|
||||
:start-at: /** \brief Register a callback for adding extra information to EVE
|
||||
:end-at: );
|
||||
|
||||
Callback
|
||||
********
|
||||
|
||||
The callback function is provided with an open ``SCJsonBuilder``
|
||||
instance just before being closed out with a final ``}``. Additional
|
||||
fields can be added with the ``SCJsonBuilder`` API.
|
||||
|
||||
.. literalinclude:: ../../../../../src/output-eve.h
|
||||
:language: c
|
||||
:start-at: /** \brief Function type for EVE callbacks
|
||||
:end-at: );
|
||||
|
||||
Example
|
||||
*******
|
||||
|
||||
For a real-life example, see the ``ndpi`` plugin included in the
|
||||
Suricata source.
|
||||
|
||||
The example demonstrates:
|
||||
|
||||
- Registering an EVE callback during plugin initialization
|
||||
- Using thread-local storage to maintain state
|
||||
- Adding protocol-specific information to EVE records
|
||||
- Properly checking for NULL pointers before accessing data
|
||||
Loading…
Reference in New Issue