output: simple name space support for sub modules

To avoid module name clashes, a submode abc of parent xyz, will now
register itself as xyz.abc.
pull/805/head
Victor Julien 12 years ago
parent 3a794f7a63
commit a9eab06593

@ -385,7 +385,7 @@ void TmModuleJsonDnsLogRegister (void) {
OutputRegisterTxModule(MODULE_NAME, "dns-json-log", JsonDnsLogInitCtx, OutputRegisterTxModule(MODULE_NAME, "dns-json-log", JsonDnsLogInitCtx,
ALPROTO_DNS, JsonDnsLogger); ALPROTO_DNS, JsonDnsLogger);
OutputRegisterTxSubModule("eve-log", MODULE_NAME, "dns", JsonDnsLogInitCtxSub, OutputRegisterTxSubModule("eve-log", MODULE_NAME, "eve-log.dns", JsonDnsLogInitCtxSub,
ALPROTO_DNS, JsonDnsLogger); ALPROTO_DNS, JsonDnsLogger);
} }

@ -301,7 +301,7 @@ void TmModuleJsonDropLogRegister (void) {
OutputRegisterPacketModule(MODULE_NAME, "drop-json-log", OutputRegisterPacketModule(MODULE_NAME, "drop-json-log",
JsonDropLogInitCtx, JsonDropLogger, JsonDropLogCondition); JsonDropLogInitCtx, JsonDropLogger, JsonDropLogCondition);
OutputRegisterPacketSubModule("eve-log", MODULE_NAME, "drop-json", OutputRegisterPacketSubModule("eve-log", MODULE_NAME, "eve-log.drop",
JsonDropLogInitCtxSub, JsonDropLogger, JsonDropLogCondition); JsonDropLogInitCtxSub, JsonDropLogger, JsonDropLogCondition);
} }

@ -359,7 +359,7 @@ void TmModuleJsonHttpLogRegister (void) {
ALPROTO_HTTP, JsonHttpLogger); ALPROTO_HTTP, JsonHttpLogger);
/* also register as child of eve-log */ /* also register as child of eve-log */
OutputRegisterTxSubModule("eve-log", "JsonHttpLog", "http", OutputHttpLogInitSub, OutputRegisterTxSubModule("eve-log", "JsonHttpLog", "eve-log.http", OutputHttpLogInitSub,
ALPROTO_HTTP, JsonHttpLogger); ALPROTO_HTTP, JsonHttpLogger);
} }

@ -323,7 +323,7 @@ void TmModuleJsonAlertLogRegister (void) {
OutputRegisterPacketModule(MODULE_NAME, "alert-json-log", OutputRegisterPacketModule(MODULE_NAME, "alert-json-log",
JsonAlertLogInitCtx, JsonAlertLogger, JsonAlertLogCondition); JsonAlertLogInitCtx, JsonAlertLogger, JsonAlertLogCondition);
OutputRegisterPacketSubModule("eve-log", MODULE_NAME, "alert", OutputRegisterPacketSubModule("eve-log", MODULE_NAME, "eve-log.alert",
JsonAlertLogInitCtxSub, JsonAlertLogger, JsonAlertLogCondition); JsonAlertLogInitCtxSub, JsonAlertLogger, JsonAlertLogCondition);
} }

@ -603,21 +603,24 @@ void RunModeInitializeOutputs(void)
TAILQ_FOREACH(type, &types->head, next) { TAILQ_FOREACH(type, &types->head, next) {
SCLogInfo("type %s", type->val); 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) { if (sub_module == NULL) {
SCLogWarning(SC_ERR_INVALID_ARGUMENT, SCLogWarning(SC_ERR_INVALID_ARGUMENT,
"No output module named %s, ignoring", type->val); "No output module named %s, ignoring", subname);
continue; continue;
} }
if (sub_module->parent_name == NULL || if (sub_module->parent_name == NULL ||
strcmp(sub_module->parent_name,output->val) != 0) { strcmp(sub_module->parent_name,output->val) != 0) {
SCLogWarning(SC_ERR_INVALID_ARGUMENT, SCLogWarning(SC_ERR_INVALID_ARGUMENT,
"bad parent for %s, ignoring", type->val); "bad parent for %s, ignoring", subname);
continue; continue;
} }
if (sub_module->InitSubFunc == NULL) { if (sub_module->InitSubFunc == NULL) {
SCLogWarning(SC_ERR_INVALID_ARGUMENT, SCLogWarning(SC_ERR_INVALID_ARGUMENT,
"bad sub-module for %s, ignoring", type->val); "bad sub-module for %s, ignoring", subname);
continue; continue;
} }
ConfNode *sub_output_config = ConfNodeLookupChild(type, type->val); ConfNode *sub_output_config = ConfNodeLookupChild(type, type->val);

Loading…
Cancel
Save