To be used by the requires keyword to check for keyword support.
Ticket: #7403
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;
#ifndef SURICATA_DETECT_ENGINE_REGISTER_H
#define SURICATA_DETECT_ENGINE_REGISTER_H
+#include "suricata-common.h"
+
enum DetectKeywordId {
DETECT_SID,
DETECT_PRIORITY,
void SigTableInit(void);
void SigTableSetup(void);
void SigTableRegisterTests(void);
+bool SigTableHasKeyword(const char *keyword);
#endif /* SURICATA_DETECT_ENGINE_REGISTER_H */