]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
output: simple name space support for sub modules
authorVictor Julien <victor@inliniac.net>
Thu, 30 Jan 2014 09:59:51 +0000 (10:59 +0100)
committerVictor Julien <victor@inliniac.net>
Thu, 30 Jan 2014 09:59:51 +0000 (10:59 +0100)
To avoid module name clashes, a submode abc of parent xyz, will now
register itself as xyz.abc.

src/output-dnslog.c
src/output-droplog.c
src/output-httplog.c
src/output-json-alert.c
src/runmodes.c

index 677edaba6f68507e99f45463eccc91961791ceed..098ec197c5ef85c1efbd63a5c86b7e4583606cca 100644 (file)
@@ -385,7 +385,7 @@ void TmModuleJsonDnsLogRegister (void) {
 
     OutputRegisterTxModule(MODULE_NAME, "dns-json-log", JsonDnsLogInitCtx,
             ALPROTO_DNS, JsonDnsLogger);
-    OutputRegisterTxSubModule("eve-log", MODULE_NAME, "dns", JsonDnsLogInitCtxSub,
+    OutputRegisterTxSubModule("eve-log", MODULE_NAME, "eve-log.dns", JsonDnsLogInitCtxSub,
             ALPROTO_DNS, JsonDnsLogger);
 }
 
index 4e88186e5a911f542b59c0a345d390594da94c1e..4a865bfa4183deea1a67cc0b749a7db320f2d6d9 100644 (file)
@@ -301,7 +301,7 @@ void TmModuleJsonDropLogRegister (void) {
 
     OutputRegisterPacketModule(MODULE_NAME, "drop-json-log",
             JsonDropLogInitCtx, JsonDropLogger, JsonDropLogCondition);
-    OutputRegisterPacketSubModule("eve-log", MODULE_NAME, "drop-json",
+    OutputRegisterPacketSubModule("eve-log", MODULE_NAME, "eve-log.drop",
             JsonDropLogInitCtxSub, JsonDropLogger, JsonDropLogCondition);
 }
 
index 492eda53f972053641c1655eb28eceb84ab6dbcb..3a4705021a974c5c6bb95fb147e8d9dc68959622 100644 (file)
@@ -359,7 +359,7 @@ void TmModuleJsonHttpLogRegister (void) {
             ALPROTO_HTTP, JsonHttpLogger);
 
     /* also register as child of eve-log */
-    OutputRegisterTxSubModule("eve-log", "JsonHttpLog", "http", OutputHttpLogInitSub,
+    OutputRegisterTxSubModule("eve-log", "JsonHttpLog", "eve-log.http", OutputHttpLogInitSub,
             ALPROTO_HTTP, JsonHttpLogger);
 }
 
index 0221567c41f4dc2e2ab63289e811c741871bc0d5..7acc363ba4084128dc66dbb33f75b3d03993ef81 100644 (file)
@@ -323,7 +323,7 @@ void TmModuleJsonAlertLogRegister (void) {
 
     OutputRegisterPacketModule(MODULE_NAME, "alert-json-log",
             JsonAlertLogInitCtx, JsonAlertLogger, JsonAlertLogCondition);
-    OutputRegisterPacketSubModule("eve-log", MODULE_NAME, "alert",
+    OutputRegisterPacketSubModule("eve-log", MODULE_NAME, "eve-log.alert",
             JsonAlertLogInitCtxSub, JsonAlertLogger, JsonAlertLogCondition);
 }
 
index 2916deff7b19e36836bb6f2d434b1f7737557f3a..25a868ebe4472037762ab3214c0f159d26d79125 100644 (file)
@@ -603,21 +603,24 @@ void RunModeInitializeOutputs(void)
                 TAILQ_FOREACH(type, &types->head, next) {
                     SCLogInfo("type %s", type->val);
 
-                    OutputModule *sub_module = OutputGetModuleByConfName(type->val);
+                    char subname[256];
+                    snprintf(subname, sizeof(subname), "%s.%s", output->val, type->val);
+
+                    OutputModule *sub_module = OutputGetModuleByConfName(subname);
                     if (sub_module == NULL) {
                         SCLogWarning(SC_ERR_INVALID_ARGUMENT,
-                                "No output module named %s, ignoring", type->val);
+                                "No output module named %s, ignoring", subname);
                         continue;
                     }
                     if (sub_module->parent_name == NULL ||
                             strcmp(sub_module->parent_name,output->val) != 0) {
                         SCLogWarning(SC_ERR_INVALID_ARGUMENT,
-                                "bad parent for %s, ignoring", type->val);
+                                "bad parent for %s, ignoring", subname);
                         continue;
                     }
                     if (sub_module->InitSubFunc == NULL) {
                         SCLogWarning(SC_ERR_INVALID_ARGUMENT,
-                                "bad sub-module for %s, ignoring", type->val);
+                                "bad sub-module for %s, ignoring", subname);
                         continue;
                     }
                     ConfNode *sub_output_config = ConfNodeLookupChild(type, type->val);