: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: );
-/* 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
* 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;
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));
-/* 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
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);
* \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)) {
TxLogger TxLogFunc;
TxLoggerCondition TxLogCondition;
SCFileLogger FileLogFunc;
- FiledataLogger FiledataLogFunc;
+ SCFiledataLogger FiledataLogFunc;
FlowLogger FlowLogFunc;
SCStreamingLogger StreamingLogFunc;
StatsLogger StatsLogFunc;
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,
}
} 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) {