output/plugin: Refactor eve registration function

pull/6395/head
Jeff Lucovsky 5 years ago committed by Victor Julien
parent 98d4f9eaa4
commit b4da070c59

@ -40,6 +40,8 @@ typedef struct SCPlugin_ {
void (*Init)(void);
} SCPlugin;
typedef SCPlugin *(*SCPluginRegisterFunc)(void);
/**
* Structure used to define a file type plugin.
*
@ -64,7 +66,7 @@ typedef struct SCPluginFileType_ {
TAILQ_ENTRY(SCPluginFileType_) entries;
} SCPluginFileType;
bool SCPluginRegisterFileType(SCPluginFileType *);
bool SCPluginRegisterEveFileType(SCPluginFileType *);
bool SCRegisterEveFileType(SCPluginFileType *);
typedef struct SCCapturePlugin_ {

@ -17,14 +17,13 @@
#include "suricata-common.h"
#include "suricata-plugin.h"
#include "output-eve-syslog.h"
#include "util-plugin.h"
#ifdef HAVE_PLUGINS
#include <dlfcn.h>
typedef SCPlugin *(*SCPluginRegisterFunc)(void);
typedef struct PluginListNode_ {
SCPlugin *plugin;
void *lib;
@ -167,9 +166,8 @@ bool SCRegisterEveFileType(SCPluginFileType *plugin)
* conflicts with a built-in or previously registered
* plugin file type.
*
* TODO: As this is Eve specific, perhaps Eve should be in the filename.
*/
bool SCPluginRegisterFileType(SCPluginFileType *plugin)
bool SCPluginRegisterEveFileType(SCPluginFileType *plugin)
{
const char *builtin[] = {
"regular",
@ -190,18 +188,7 @@ bool SCPluginRegisterFileType(SCPluginFileType *plugin)
}
}
SCPluginFileType *existing = NULL;
TAILQ_FOREACH(existing, &output_types, entries) {
if (strcmp(existing->name, plugin->name) == 0) {
SCLogNotice("Eve filetype plugin name conflicts with previously "
"registered plugin: %s", plugin->name);
return false;
}
}
SCLogNotice("Registering JSON file type plugin %s", plugin->name);
TAILQ_INSERT_TAIL(&output_types, plugin, entries);
return true;
return SCRegisterEveFileType(plugin);
}
SCPluginFileType *SCPluginFindFileType(const char *name)

Loading…
Cancel
Save