template: support AppLayerTxData

pull/5169/head
Victor Julien 6 years ago
parent e0debed0b4
commit 455eab370e

@ -1,4 +1,4 @@
/* Copyright (C) 2015 Open Information Security Foundation
/* Copyright (C) 2015-2020 Open Information Security Foundation
*
* You can copy, redistribute or modify this Program under the terms of
* the GNU General Public License version 2 as published by the Free
@ -400,18 +400,6 @@ static void *TemplateGetTx(void *statev, uint64_t tx_id)
return NULL;
}
static void TemplateSetTxLogged(void *state, void *vtx, LoggerId logged)
{
TemplateTransaction *tx = (TemplateTransaction *)vtx;
tx->logged = logged;
}
static LoggerId TemplateGetTxLogged(void *state, void *vtx)
{
const TemplateTransaction *tx = (TemplateTransaction *)vtx;
return tx->logged;
}
/**
* \brief Called by the application layer.
*
@ -453,6 +441,15 @@ static int TemplateGetStateProgress(void *txv, uint8_t direction)
return 0;
}
/**
* \brief retrieve the tx data used for logging, config, detection
*/
static AppLayerTxData *TemplateGetTxData(void *vtx)
{
TemplateTransaction *tx = vtx;
return &tx->tx_data;
}
/**
* \brief retrieve the detection engine per tx state
*/
@ -543,9 +540,6 @@ void RegisterTemplateParsers(void)
AppLayerParserRegisterTxFreeFunc(IPPROTO_TCP, ALPROTO_TEMPLATE,
TemplateStateTxFree);
AppLayerParserRegisterLoggerFuncs(IPPROTO_TCP, ALPROTO_TEMPLATE,
TemplateGetTxLogged, TemplateSetTxLogged);
/* Register a function to return the current transaction count. */
AppLayerParserRegisterGetTxCnt(IPPROTO_TCP, ALPROTO_TEMPLATE,
TemplateGetTxCnt);
@ -557,6 +551,8 @@ void RegisterTemplateParsers(void)
ALPROTO_TEMPLATE, TemplateGetStateProgress);
AppLayerParserRegisterGetTx(IPPROTO_TCP, ALPROTO_TEMPLATE,
TemplateGetTx);
AppLayerParserRegisterTxDataFunc(IPPROTO_TCP, ALPROTO_TEMPLATE,
TemplateGetTxData);
/* What is this being registered for? */
AppLayerParserRegisterDetectStateFuncs(IPPROTO_TCP, ALPROTO_TEMPLATE,

@ -28,6 +28,8 @@
#include "queue.h"
#include "rust.h"
void RegisterTemplateParsers(void);
void TemplateParserRegisterTests(void);
@ -43,9 +45,6 @@ typedef struct TemplateTransaction
uint8_t *request_buffer;
uint32_t request_buffer_len;
/** flags indicating which loggers that have logged */
LoggerId logged;
uint8_t *response_buffer;
uint32_t response_buffer_len;
@ -54,6 +53,8 @@ typedef struct TemplateTransaction
DetectEngineState *de_state;
AppLayerTxData tx_data;
TAILQ_ENTRY(TemplateTransaction) next;
} TemplateTransaction;

Loading…
Cancel
Save