detect: list-keywords cli shows integers with bitflags

Ticket: 7875
pull/13884/head
Philippe Antoine 1 year ago committed by Victor Julien
parent 53d9569dfb
commit 95483228d2

@ -125,6 +125,7 @@ exclude = [
"SIGMATCH_INFO_UINT64", "SIGMATCH_INFO_UINT64",
"SIGMATCH_INFO_MULTI_UINT", "SIGMATCH_INFO_MULTI_UINT",
"SIGMATCH_INFO_ENUM_UINT", "SIGMATCH_INFO_ENUM_UINT",
"SIGMATCH_INFO_BITFLAGS_UINT",
"FtpCommand", "FtpCommand",
] ]

@ -136,6 +136,7 @@ pub const SIGMATCH_INFO_UINT32: u32 = 0x20000; // BIT_U32(17)
pub const SIGMATCH_INFO_UINT64: u32 = 0x40000; // BIT_U32(18) pub const SIGMATCH_INFO_UINT64: u32 = 0x40000; // BIT_U32(18)
pub const SIGMATCH_INFO_MULTI_UINT: u32 = 0x80000; // BIT_U32(19) pub const SIGMATCH_INFO_MULTI_UINT: u32 = 0x80000; // BIT_U32(19)
pub const SIGMATCH_INFO_ENUM_UINT: u32 = 0x100000; // BIT_U32(20) pub const SIGMATCH_INFO_ENUM_UINT: u32 = 0x100000; // BIT_U32(20)
pub const SIGMATCH_INFO_BITFLAGS_UINT: u32 = 0x200000; // BIT_U32(21)
#[repr(u8)] #[repr(u8)]

@ -24,8 +24,8 @@ use crate::detect::uint::{
}; };
use crate::detect::{ use crate::detect::{
helper_keyword_register_multi_buffer, helper_keyword_register_sticky_buffer, helper_keyword_register_multi_buffer, helper_keyword_register_sticky_buffer,
SigTableElmtStickyBuffer, SIGMATCH_INFO_ENUM_UINT, SIGMATCH_INFO_MULTI_UINT, SigTableElmtStickyBuffer, SIGMATCH_INFO_BITFLAGS_UINT, SIGMATCH_INFO_ENUM_UINT,
SIGMATCH_INFO_UINT8, SIGMATCH_INFO_MULTI_UINT, SIGMATCH_INFO_UINT8,
}; };
use suricata_sys::sys::{ use suricata_sys::sys::{
DetectEngineCtx, DetectEngineThreadCtx, Flow, SCDetectBufferSetActiveList, DetectEngineCtx, DetectEngineThreadCtx, Flow, SCDetectBufferSetActiveList,
@ -1142,7 +1142,7 @@ pub unsafe extern "C" fn SCDetectMqttRegister() {
AppLayerTxMatch: Some(mqtt_flags_match), AppLayerTxMatch: Some(mqtt_flags_match),
Setup: Some(mqtt_flags_setup), Setup: Some(mqtt_flags_setup),
Free: Some(mqtt_flags_free), Free: Some(mqtt_flags_free),
flags: SIGMATCH_INFO_UINT8 | SIGMATCH_INFO_MULTI_UINT, flags: SIGMATCH_INFO_UINT8 | SIGMATCH_INFO_MULTI_UINT | SIGMATCH_INFO_BITFLAGS_UINT,
}; };
G_MQTT_FLAGS_KW_ID = SCDetectHelperKeywordRegister(&kw); G_MQTT_FLAGS_KW_ID = SCDetectHelperKeywordRegister(&kw);
G_MQTT_FLAGS_BUFFER_ID = SCDetectHelperBufferRegister( G_MQTT_FLAGS_BUFFER_ID = SCDetectHelperBufferRegister(
@ -1157,7 +1157,7 @@ pub unsafe extern "C" fn SCDetectMqttRegister() {
AppLayerTxMatch: Some(mqtt_conn_flags_match), AppLayerTxMatch: Some(mqtt_conn_flags_match),
Setup: Some(mqtt_conn_flags_setup), Setup: Some(mqtt_conn_flags_setup),
Free: Some(mqtt_conn_flags_free), Free: Some(mqtt_conn_flags_free),
flags: SIGMATCH_INFO_UINT8 | SIGMATCH_INFO_MULTI_UINT, flags: SIGMATCH_INFO_UINT8 | SIGMATCH_INFO_MULTI_UINT | SIGMATCH_INFO_BITFLAGS_UINT,
}; };
G_MQTT_CONN_FLAGS_KW_ID = SCDetectHelperKeywordRegister(&kw); G_MQTT_CONN_FLAGS_KW_ID = SCDetectHelperKeywordRegister(&kw);
G_MQTT_CONN_FLAGS_BUFFER_ID = SCDetectHelperBufferRegister( G_MQTT_CONN_FLAGS_BUFFER_ID = SCDetectHelperBufferRegister(

@ -22,8 +22,8 @@ use crate::detect::uint::{
SCDetectU32Match, SCDetectU32Parse, SCDetectU8Free, SCDetectU8Match, SCDetectU32Match, SCDetectU32Parse, SCDetectU8Free, SCDetectU8Match,
}; };
use crate::detect::{ use crate::detect::{
helper_keyword_register_sticky_buffer, SigTableElmtStickyBuffer, SIGMATCH_INFO_ENUM_UINT, helper_keyword_register_sticky_buffer, SigTableElmtStickyBuffer, SIGMATCH_INFO_BITFLAGS_UINT,
SIGMATCH_INFO_UINT32, SIGMATCH_INFO_UINT8, SIGMATCH_INFO_ENUM_UINT, SIGMATCH_INFO_UINT32, SIGMATCH_INFO_UINT8,
}; };
use crate::websocket::parser::WebSocketOpcode; use crate::websocket::parser::WebSocketOpcode;
use suricata_sys::sys::{ use suricata_sys::sys::{
@ -306,7 +306,7 @@ pub unsafe extern "C" fn SCDetectWebsocketRegister() {
AppLayerTxMatch: Some(websocket_detect_flags_match), AppLayerTxMatch: Some(websocket_detect_flags_match),
Setup: Some(websocket_detect_flags_setup), Setup: Some(websocket_detect_flags_setup),
Free: Some(websocket_detect_flags_free), Free: Some(websocket_detect_flags_free),
flags: SIGMATCH_INFO_UINT8, flags: SIGMATCH_INFO_UINT8 | SIGMATCH_INFO_BITFLAGS_UINT,
}; };
G_WEBSOCKET_FLAGS_KW_ID = SCDetectHelperKeywordRegister(&kw); G_WEBSOCKET_FLAGS_KW_ID = SCDetectHelperKeywordRegister(&kw);
G_WEBSOCKET_FLAGS_BUFFER_ID = SCDetectHelperBufferRegister( G_WEBSOCKET_FLAGS_BUFFER_ID = SCDetectHelperBufferRegister(

@ -343,6 +343,8 @@ static void PrintFeatureList(const SigTableElmt *e, char sep)
printf("multi "); printf("multi ");
if (flags & SIGMATCH_INFO_ENUM_UINT) if (flags & SIGMATCH_INFO_ENUM_UINT)
printf("enum "); printf("enum ");
if (flags & SIGMATCH_INFO_BITFLAGS_UINT)
printf("bitflags ");
if (flags & SIGMATCH_INFO_UINT8) if (flags & SIGMATCH_INFO_UINT8)
printf("uint8"); printf("uint8");
if (flags & SIGMATCH_INFO_UINT16) if (flags & SIGMATCH_INFO_UINT16)

@ -1694,6 +1694,8 @@ typedef struct SigGroupHead_ {
#define SIGMATCH_INFO_MULTI_UINT BIT_U32(19) #define SIGMATCH_INFO_MULTI_UINT BIT_U32(19)
/** keyword is an uint with enumeration stringer */ /** keyword is an uint with enumeration stringer */
#define SIGMATCH_INFO_ENUM_UINT BIT_U32(20) #define SIGMATCH_INFO_ENUM_UINT BIT_U32(20)
/** keyword is an uint with bitflags */
#define SIGMATCH_INFO_BITFLAGS_UINT BIT_U32(21)
enum DetectEngineTenantSelectors enum DetectEngineTenantSelectors
{ {

Loading…
Cancel
Save