mqtt/doc: list possible values for enum keywords

Ticket: 8675
pull/16404/head
Philippe Antoine 4 months ago committed by Victor Julien
parent e6231074b2
commit fc36553629

@ -46,6 +46,8 @@ Valid values are :
where ``UNASSIGNED`` refers to message type code 0. where ``UNASSIGNED`` refers to message type code 0.
See ``suricata --list-keywords=json | jq '."mqtt.type".enum_values'``
mqtt.type uses an :ref:`unsigned 8-bits integer <rules-integer-keywords>`. mqtt.type uses an :ref:`unsigned 8-bits integer <rules-integer-keywords>`.
mqtt.type is also a :ref:`multi-integer <multi-integers>`. mqtt.type is also a :ref:`multi-integer <multi-integers>`.

@ -24,16 +24,17 @@ use crate::detect::uint::{
DetectUintIndex, SCDetectU8ArrayFree, SCDetectU8ArrayParse, SCDetectU8Free, SCDetectU8Parse, DetectUintIndex, SCDetectU8ArrayFree, SCDetectU8ArrayParse, SCDetectU8Free, SCDetectU8Parse,
}; };
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, EnumString,
SigTableElmtStickyBuffer, SIGMATCH_INFO_BITFLAGS_UINT, SIGMATCH_INFO_ENUM_UINT, SigTableElmtStickyBuffer, SIGMATCH_INFO_BITFLAGS_UINT, SIGMATCH_INFO_ENUM_UINT,
SIGMATCH_INFO_MULTI_UINT, SIGMATCH_INFO_UINT8, SIGMATCH_INFO_MULTI_UINT, SIGMATCH_INFO_UINT8,
}; };
use crate::jsonbuilder::JsonBuilder;
use suricata_sys::sys::{ use suricata_sys::sys::{
DetectEngineCtx, DetectEngineThreadCtx, Flow, SCDetectBufferSetActiveList, DetectEngineCtx, DetectEngineThreadCtx, Flow, SCDetectBufferSetActiveList,
SCDetectHelperBufferMpmRegister, SCDetectHelperBufferProgressRegister, SCDetectHelperBufferMpmRegister, SCDetectHelperBufferProgressRegister,
SCDetectHelperKeywordRegister, SCDetectHelperMultiBufferMpmRegister, SCDetectHelperKeywordJsonInfoRegister, SCDetectHelperKeywordRegister,
SCDetectSignatureSetAppProto, SCSigMatchAppendSMToList, SCSigTableAppLiteElmt, SigMatchCtx, SCDetectHelperMultiBufferMpmRegister, SCDetectSignatureSetAppProto, SCJsonBuilder,
Signature, SCSigMatchAppendSMToList, SCSigTableAppLiteElmt, SigMatchCtx, Signature,
}; };
use super::mqtt::{MQTTState, MQTTTransaction, ALPROTO_MQTT}; use super::mqtt::{MQTTState, MQTTTransaction, ALPROTO_MQTT};
@ -906,6 +907,11 @@ unsafe extern "C" fn mqtt_conn_clientid_setup(
return 0; return 0;
} }
unsafe extern "C" fn mqtt_type_list_values(jsb: *mut SCJsonBuilder) {
let jsb = cast_pointer!(jsb, JsonBuilder);
let _ = MQTTTypeCode::list_values(jsb);
}
#[no_mangle] #[no_mangle]
pub unsafe extern "C" fn SCDetectMqttRegister() { pub unsafe extern "C" fn SCDetectMqttRegister() {
let keyword_name = b"mqtt.unsubscribe.topic\0".as_ptr() as *const libc::c_char; let keyword_name = b"mqtt.unsubscribe.topic\0".as_ptr() as *const libc::c_char;
@ -941,6 +947,8 @@ pub unsafe extern "C" fn SCDetectMqttRegister() {
flags: SIGMATCH_INFO_UINT8 | SIGMATCH_INFO_MULTI_UINT | SIGMATCH_INFO_ENUM_UINT, flags: SIGMATCH_INFO_UINT8 | SIGMATCH_INFO_MULTI_UINT | SIGMATCH_INFO_ENUM_UINT,
}; };
G_MQTT_TYPE_KW_ID = SCDetectHelperKeywordRegister(&kw); G_MQTT_TYPE_KW_ID = SCDetectHelperKeywordRegister(&kw);
SCDetectHelperKeywordJsonInfoRegister(G_MQTT_TYPE_KW_ID, Some(mqtt_type_list_values));
G_MQTT_TYPE_BUFFER_ID = SCDetectHelperBufferProgressRegister( G_MQTT_TYPE_BUFFER_ID = SCDetectHelperBufferProgressRegister(
b"mqtt.type\0".as_ptr() as *const libc::c_char, b"mqtt.type\0".as_ptr() as *const libc::c_char,
ALPROTO_MQTT, ALPROTO_MQTT,

Loading…
Cancel
Save