sctp/doc: list possible values for enum keywords

Ticket: 8675
pull/16404/head
Philippe Antoine 4 months ago committed by Victor Julien
parent 49aefe7093
commit c23ff8695b

@ -104,6 +104,8 @@ shutdown_complete 14
forward_tsn 192
================= =====
See ``suricata --list-keywords=json | jq '."sctp.chunk_type".enum_values'``
Named values are case-insensitive and can be negated with ``!``::
sctp.chunk_type:init # INIT chunk

@ -18,6 +18,9 @@
// Author: Giuseppe Longo <glongo@oisf.net>
use crate::detect::uint::{detect_parse_uint_enum, DetectUintData};
use crate::detect::EnumString;
use crate::jsonbuilder::JsonBuilder;
use suricata_sys::sys::SCJsonBuilder;
use std::ffi::CStr;
@ -82,6 +85,12 @@ pub extern "C" fn SCSctpChunkTypeToString(val: u8) -> *const std::os::raw::c_cha
s.as_ptr() as *const std::os::raw::c_char
}
#[no_mangle]
pub unsafe extern "C" fn SCDetectSCTPChunkTypeListValues(jsb: *mut SCJsonBuilder) {
let jsb = cast_pointer!(jsb, JsonBuilder);
let _ = SctpChunkType::list_values(jsb);
}
#[cfg(test)]
mod test {
use super::*;

@ -45,6 +45,11 @@ void DetectSCTPChunkTypeFree(DetectEngineCtx *, void *);
static int PrefilterSetupSCTPChunkType(DetectEngineCtx *de_ctx, SigGroupHead *sgh);
static bool PrefilterSCTPChunkTypeIsPrefilterable(const Signature *s);
static void DetectSCTPChunkTypeListValues(SCJsonBuilder *jsb)
{
SCDetectSCTPChunkTypeListValues(jsb);
}
void DetectSCTPChunkTypeRegister(void)
{
sigmatch_table[DETECT_SCTP_CHUNK_TYPE].name = "sctp.chunk_type";
@ -57,6 +62,7 @@ void DetectSCTPChunkTypeRegister(void)
sigmatch_table[DETECT_SCTP_CHUNK_TYPE].SupportsPrefilter =
PrefilterSCTPChunkTypeIsPrefilterable;
sigmatch_table[DETECT_SCTP_CHUNK_TYPE].SetupPrefilter = PrefilterSetupSCTPChunkType;
sigmatch_table[DETECT_SCTP_CHUNK_TYPE].JsonAdditionalInfo = DetectSCTPChunkTypeListValues;
}
static int DetectSCTPChunkTypeMatch(

Loading…
Cancel
Save