detect: add util funcs to get first and last sigmatch for buffer

pull/8732/head
Victor Julien 2 years ago
parent 6bc7f02e13
commit 0b6ebd13ee

@ -1290,6 +1290,33 @@ bool DetectEngineBufferRunValidateCallback(
return true;
}
SigMatch *DetectBufferGetFirstSigMatch(const Signature *s, const uint32_t buf_id)
{
const uint32_t nlists = s->init_data->smlists_array_size;
if (buf_id < nlists) {
return s->init_data->smlists[buf_id];
}
return NULL;
}
SigMatch *DetectBufferGetLastSigMatch(const Signature *s, const uint32_t buf_id)
{
const uint32_t nlists = s->init_data->smlists_array_size;
if (buf_id < nlists) {
return s->init_data->smlists_tail[buf_id];
}
return NULL;
}
bool DetectBufferIsPresent(const Signature *s, const uint32_t buf_id)
{
const uint32_t nlists = s->init_data->smlists_array_size;
if (buf_id < nlists) {
return s->init_data->smlists_tail[buf_id] != NULL;
}
return false;
}
int DetectBufferSetActiveList(Signature *s, const int list)
{
BUG_ON(s->init_data == NULL);

@ -186,6 +186,9 @@ int DetectEngineMustParseMetadata(void);
int WARN_UNUSED DetectBufferSetActiveList(Signature *s, const int list);
int DetectBufferGetActiveList(DetectEngineCtx *de_ctx, Signature *s);
SigMatch *DetectBufferGetFirstSigMatch(const Signature *s, const uint32_t buf_id);
SigMatch *DetectBufferGetLastSigMatch(const Signature *s, const uint32_t buf_id);
bool DetectBufferIsPresent(const Signature *s, const uint32_t buf_id);
DetectEngineThreadCtx *DetectEngineThreadCtxInitForReload(
ThreadVars *tv, DetectEngineCtx *new_de_ctx, int mt);

Loading…
Cancel
Save