Skip to content

Commit

Permalink
output-filedata: rename and document registration function
Browse files Browse the repository at this point in the history
Prefix registration function and pointer function type with SC, as
well as document.

Ticket: OISF#7227
  • Loading branch information
jasonish authored and Corey Thomas committed Sep 3, 2024
1 parent a094ad3 commit f65ba6b
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 11 deletions.
11 changes: 11 additions & 0 deletions doc/userguide/devguide/extending/output/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,14 @@ function:
:language: c
:start-at: /** \brief Register a file logger
:end-at: );

File-data Logging
~~~~~~~~~~~~~~~~~

File-data loggers can be registered with the
``SCOutputRegisterFileDataLogger`` function:

.. literalinclude:: ../../../../../src/output-filedata.h
:language: c
:start-at: /** \brief Register a file-data logger
:end-at: );
6 changes: 3 additions & 3 deletions src/output-filedata.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright (C) 2007-2022 Open Information Security Foundation
/* Copyright (C) 2007-2024 Open Information Security Foundation
*
* You can copy, redistribute or modify this Program under the terms of
* the GNU General Public License version 2 as published by the Free
Expand Down Expand Up @@ -40,7 +40,7 @@ bool g_filedata_logger_enabled = false;
* it's perfectly valid that have multiple instances of the same
* log module (e.g. http.log) with different output ctx'. */
typedef struct OutputFiledataLogger_ {
FiledataLogger LogFunc;
SCFiledataLogger LogFunc;
void *initdata;
struct OutputFiledataLogger_ *next;
const char *name;
Expand All @@ -51,7 +51,7 @@ typedef struct OutputFiledataLogger_ {

static OutputFiledataLogger *list = NULL;

int OutputRegisterFiledataLogger(LoggerId id, const char *name, FiledataLogger LogFunc,
int SCOutputRegisterFiledataLogger(LoggerId id, const char *name, SCFiledataLogger LogFunc,
void *initdata, ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit)
{
OutputFiledataLogger *op = SCCalloc(1, sizeof(*op));
Expand Down
29 changes: 25 additions & 4 deletions src/output-filedata.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright (C) 2007-2022 Open Information Security Foundation
/* Copyright (C) 2007-2024 Open Information Security Foundation
*
* You can copy, redistribute or modify this Program under the terms of
* the GNU General Public License version 2 as published by the Free
Expand Down Expand Up @@ -45,11 +45,32 @@ void OutputFiledataLogFfc(ThreadVars *tv, OutputFiledataLoggerThreadData *td, Pa
AppLayerGetFileState files, void *txv, const uint64_t tx_id, AppLayerTxData *txd,
const uint8_t call_flags, const bool file_close, const bool file_trunc, const uint8_t dir);

/** filedata logger function pointer type */
typedef int (*FiledataLogger)(ThreadVars *, void *thread_data, const Packet *, File *, void *tx,
/**
* \brief File-data logger function pointer type.
*/
typedef int (*SCFiledataLogger)(ThreadVars *, void *thread_data, const Packet *, File *, void *tx,
const uint64_t tx_id, const uint8_t *, uint32_t, uint8_t, uint8_t dir);

int OutputRegisterFiledataLogger(LoggerId id, const char *name, FiledataLogger LogFunc,
/** \brief Register a file-data logger.
*
* \param logger_id An ID used to distinguish this logger from others
* while profiling.
*
* \param name An informational name for this logger. Used only for
* debugging.
*
* \param LogFunc A function that will be called to log each file-data.
*
* \param initdata Initialization data that will pass to the
* ThreadInitFunc.
*
* \param ThreadInitFunc Thread initialization function.
*
* \param ThreadDeinitFunc Thread de-initialization function.
*
* \retval 0 on success, -1 on failure.
*/
int SCOutputRegisterFiledataLogger(LoggerId id, const char *name, SCFiledataLogger LogFunc,
void *initdata, ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit);

void OutputFiledataLoggerRegister(void);
Expand Down
2 changes: 1 addition & 1 deletion src/output.c
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@ void OutputRegisterFileSubModule(LoggerId id, const char *parent_name, const cha
* \retval Returns 0 on success, -1 on failure.
*/
void OutputRegisterFiledataModule(LoggerId id, const char *name, const char *conf_name,
OutputInitFunc InitFunc, FiledataLogger FiledataLogFunc, ThreadInitFunc ThreadInit,
OutputInitFunc InitFunc, SCFiledataLogger FiledataLogFunc, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit)
{
if (unlikely(FiledataLogFunc == NULL)) {
Expand Down
4 changes: 2 additions & 2 deletions src/output.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ typedef struct OutputModule_ {
TxLogger TxLogFunc;
TxLoggerCondition TxLogCondition;
SCFileLogger FileLogFunc;
FiledataLogger FiledataLogFunc;
SCFiledataLogger FiledataLogFunc;
FlowLogger FlowLogFunc;
SCStreamingLogger StreamingLogFunc;
StatsLogger StatsLogFunc;
Expand Down Expand Up @@ -120,7 +120,7 @@ void OutputRegisterFileSubModule(LoggerId id, const char *parent_name, const cha
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit);

void OutputRegisterFiledataModule(LoggerId id, const char *name, const char *conf_name,
OutputInitFunc InitFunc, FiledataLogger FiledataLogFunc, ThreadInitFunc ThreadInit,
OutputInitFunc InitFunc, SCFiledataLogger FiledataLogFunc, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit);

void OutputRegisterFlowSubModule(LoggerId id, const char *parent_name, const char *name,
Expand Down
2 changes: 1 addition & 1 deletion src/runmodes.c
Original file line number Diff line number Diff line change
Expand Up @@ -630,7 +630,7 @@ static void SetupOutput(
}
} else if (module->FiledataLogFunc) {
SCLogDebug("%s is a filedata logger", module->name);
OutputRegisterFiledataLogger(module->logger_id, module->name, module->FiledataLogFunc,
SCOutputRegisterFiledataLogger(module->logger_id, module->name, module->FiledataLogFunc,
output_ctx, module->ThreadInit, module->ThreadDeinit);
filedata_logger_count++;
} else if (module->FileLogFunc) {
Expand Down

0 comments on commit f65ba6b

Please sign in to comment.