]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
output-filedata: rename and document registration function 11689/head
authorJason Ish <jason.ish@oisf.net>
Fri, 30 Aug 2024 19:19:49 +0000 (13:19 -0600)
committerVictor Julien <victor@inliniac.net>
Sat, 31 Aug 2024 08:53:59 +0000 (10:53 +0200)
Prefix registration function and pointer function type with SC, as
well as document.

Ticket: #7227

doc/userguide/devguide/extending/output/index.rst
src/output-filedata.c
src/output-filedata.h
src/output.c
src/output.h
src/runmodes.c

index de766a796809c2791b80bd209355a8dd33b6daa2..8cda0ce7e67d07a4404b73054d6db8670e6b8270 100644 (file)
@@ -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: );
index ae6164b8e2021c3f3cceb1955051d68574a35506..fdff2d97810f21feb88d80fe36dd52f83699b885 100644 (file)
@@ -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
@@ -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;
@@ -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));
index cb0cbcd9594b07878683e02c119415858e618c6f..968331f80928ad08cc81de2bd480174f5957c782 100644 (file)
@@ -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
@@ -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);
index 9469bfada93a4215a2daa9d35cab60df19c8c5b5..002f33b5abc69fc7a2d615fc594637f7d789b20f 100644 (file)
@@ -428,7 +428,7 @@ error:
  * \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)) {
index f9e8a6f51d48920dd0ef9a98b11c645915a99dc6..43bd9d8b8f7469881bbd5a9525fb4bd5481d4b4c 100644 (file)
@@ -69,7 +69,7 @@ typedef struct OutputModule_ {
     TxLogger TxLogFunc;
     TxLoggerCondition TxLogCondition;
     SCFileLogger FileLogFunc;
-    FiledataLogger FiledataLogFunc;
+    SCFiledataLogger FiledataLogFunc;
     FlowLogger FlowLogFunc;
     SCStreamingLogger StreamingLogFunc;
     StatsLogger StatsLogFunc;
@@ -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,
index e9fb64a153686745874e0f03d3d9e0e25bd8c1d7..5cbe7008debf2c5263aa87206431ee41b8f34d7e 100644 (file)
@@ -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) {