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,
ALPROTO_DNS, JsonDnsLogger);
OutputRegisterTxSubModule("eve-log", MODULE_NAME, "dns", JsonDnsLogInitCtxSub,
OutputRegisterTxSubModule("eve-log", MODULE_NAME, "eve-log.dns", JsonDnsLogInitCtxSub,
ALPROTO_DNS, JsonDnsLogger);
}

@ -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);
}

@ -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);
}

@ -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);
}

@ -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);

Loading…
Cancel
Save