dns: only register a single logger

DNS no longer requires a logger to be registered for to-client and
to-server directions. This has not been required with the stateless
design of the Rust DNS parser.
pull/6018/head
Jason Ish 5 years ago committed by Victor Julien
parent b1fee90392
commit 6853bf98fb

@ -875,6 +875,16 @@ pub extern "C" fn rs_dns_state_get_tx(state: *mut std::os::raw::c_void,
}
}
#[no_mangle]
pub extern "C" fn rs_dns_tx_is_request(tx: &mut DNSTransaction) -> bool {
tx.request.is_some()
}
#[no_mangle]
pub extern "C" fn rs_dns_tx_is_response(tx: &mut DNSTransaction) -> bool {
tx.response.is_some()
}
#[no_mangle]
pub extern "C" fn rs_dns_state_set_tx_detect_state(
tx: *mut std::os::raw::c_void,

@ -410,6 +410,17 @@ static int JsonDnsLoggerToClient(ThreadVars *tv, void *thread_data,
SCReturnInt(TM_ECODE_OK);
}
static int JsonDnsLogger(ThreadVars *tv, void *thread_data, const Packet *p, Flow *f, void *alstate,
void *txptr, uint64_t tx_id)
{
if (rs_dns_tx_is_request(txptr)) {
return JsonDnsLoggerToServer(tv, thread_data, p, f, alstate, txptr, tx_id);
} else if (rs_dns_tx_is_response(txptr)) {
return JsonDnsLoggerToClient(tv, thread_data, p, f, alstate, txptr, tx_id);
}
return TM_ECODE_OK;
}
static TmEcode LogDnsLogThreadInit(ThreadVars *t, const void *initdata, void **data)
{
LogDnsLogThread *aft = SCCalloc(1, sizeof(LogDnsLogThread));
@ -649,15 +660,7 @@ static OutputInitResult JsonDnsLogInitCtxSub(ConfNode *conf, OutputCtx *parent_c
#define MODULE_NAME "JsonDnsLog"
void JsonDnsLogRegister (void)
{
/* Sub-logger for requests. */
OutputRegisterTxSubModuleWithProgress(LOGGER_JSON_DNS_TS, "eve-log",
MODULE_NAME, "eve-log.dns", JsonDnsLogInitCtxSub, ALPROTO_DNS,
JsonDnsLoggerToServer, 0, 1, LogDnsLogThreadInit,
LogDnsLogThreadDeinit, NULL);
/* Sub-logger for replies. */
OutputRegisterTxSubModuleWithProgress(LOGGER_JSON_DNS_TC, "eve-log",
MODULE_NAME, "eve-log.dns", JsonDnsLogInitCtxSub, ALPROTO_DNS,
JsonDnsLoggerToClient, 1, 1, LogDnsLogThreadInit, LogDnsLogThreadDeinit,
NULL);
OutputRegisterTxSubModule(LOGGER_JSON_DNS, "eve-log", MODULE_NAME, "eve-log.dns",
JsonDnsLogInitCtxSub, ALPROTO_DNS, JsonDnsLogger, LogDnsLogThreadInit,
LogDnsLogThreadDeinit, NULL);
}

@ -442,8 +442,7 @@ typedef enum {
LOGGER_HTTP,
LOGGER_TLS_STORE,
LOGGER_TLS,
LOGGER_JSON_DNS_TS,
LOGGER_JSON_DNS_TC,
LOGGER_JSON_DNS,
LOGGER_JSON_HTTP,
LOGGER_JSON_SMTP,
LOGGER_JSON_TLS,

@ -1302,8 +1302,7 @@ const char * PacketProfileLoggertIdToString(LoggerId id)
CASE_CODE (LOGGER_JSON_SMB);
CASE_CODE (LOGGER_JSON_NFS);
CASE_CODE (LOGGER_HTTP);
CASE_CODE (LOGGER_JSON_DNS_TS);
CASE_CODE (LOGGER_JSON_DNS_TC);
CASE_CODE(LOGGER_JSON_DNS);
CASE_CODE (LOGGER_JSON_DNP3_TS);
CASE_CODE (LOGGER_JSON_DNP3_TC);
CASE_CODE (LOGGER_JSON_HTTP);

Loading…
Cancel
Save