sigtable: add function to test for a keyword

To be used by the requires keyword to check for keyword support.

Ticket: #7403
pull/12202/head
Jason Ish 3 months ago committed by Victor Julien
parent 820a3e51b7
commit 8bcc844b6f

@ -347,6 +347,28 @@ static void SigMultilinePrint(int i, const char *prefix)
printf("\n");
}
/** \brief Check if a keyword exists. */
bool SigTableHasKeyword(const char *keyword)
{
for (int i = 0; i < DETECT_TBLSIZE; i++) {
if (sigmatch_table[i].flags & SIGMATCH_NOT_BUILT) {
continue;
}
const char *name = sigmatch_table[i].name;
if (name == NULL || strlen(name) == 0) {
continue;
}
if (strcmp(keyword, name) == 0) {
return true;
}
}
return false;
}
int SigTableList(const char *keyword)
{
size_t size = DETECT_TBLSIZE;

@ -24,6 +24,8 @@
#ifndef SURICATA_DETECT_ENGINE_REGISTER_H
#define SURICATA_DETECT_ENGINE_REGISTER_H
#include "suricata-common.h"
enum DetectKeywordId {
DETECT_SID,
DETECT_PRIORITY,
@ -342,5 +344,6 @@ void SigTableCleanup(void);
void SigTableInit(void);
void SigTableSetup(void);
void SigTableRegisterTests(void);
bool SigTableHasKeyword(const char *keyword);
#endif /* SURICATA_DETECT_ENGINE_REGISTER_H */

Loading…
Cancel
Save